PHP in XHTML einbinden

New member
Hi,

ACHTUNG---> DER TITEL HEISST: PHP IN XHTML EINBINDEN <---ACHTUNG

weil ich von HTML auf (X)HTML umgestiegen bin wollt ich mal fragen wie man PHP in XHTML einbindet. Wenn ich es auf die normale Tour mach, wird das Skript nicht ausgeführt und ich sehe den PHP-Quelltext wenn ich mir den Quelltext von FF anschaue. Vielleicht liegt es auch am Webspace(bplaced.net).

Hoffe auf Antworten...
 
Zuletzt bearbeitet:
Darf ich dann trotzdem noch dieses
valid-xhtml10

Bild benutzen???
 
Das Problem liegt vermutlich an der XHTML-Deklaration. Wenn du die Dateiendung auf .php änderst, wird sie vom PHP-Parser gelesen. In der ersten Zeile steht aber sowas wie "<?xml version="1.0" encoding="ISO-8859-1" ?>". Der PHP-Parser versucht das jetzt zu parsen, scheitert aber weils kein PHP ist.

Lösung:
PHP:
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";

Oder die "Short-Open-Tags" in der Server-Konfiguration deaktivieren (geht aber bei bplaced und ähnlichem natürlich nicht):
 
Zuletzt bearbeitet:
Meinst du das jetzt so:
PHP:
<?php
echo('
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
  content="application/xhtml+xml; charset=UTF-8" />
  <link rel="stylesheet" media="screen,projection" type="text/css"
  title="Standardstylesheet" href="default.css" />
  <title>Startseite</title>
</head>

<body>
<div id="header">
<h1>Startseite</h1>
<h2>Home</h2>
</div>
<div id="nav">
</div>
</body>
</html>
');
?>

Geht das nich irgendwie anders weil es funktioniert jetzt schon nich mit dem css...
 
PHP:
<?php
  echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://example.org/">example.org</a>.</p>
  <?php
   echo "blabla...";
  ?>
  </body>
</html>

Das sollte doch funktionieren? Wichtig für das W3C-Logo ist ja nur, was am Ende beim Browser ankommt.
 
@pixelflat sry konnte dein post grad nich sehen. so:
PHP:
<?php
echo("<?xml version="1.0\" encoding=\"ISO-8859-1\" ?>\n");
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
  content="application/xhtml+xml; charset=UTF-8" />
  <link rel="stylesheet" media="screen,projection" type="text/css"
  title="Standardstylesheet" href="default.css" />
  <title>Startseite</title>
</head>

<body>
<div id="header">
<h1>Startseite</h1>
<h2>Home</h2>
</div>
<div id="nav">
</div>
</body>
</html>
?>
sagt er:Parse error: syntax error, unexpected T_DNUMBER in /users/dortmunderjungs/www/index.php on line 2
 
PHP:
<?php
echo("<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n");

oder

PHP:
<?php
echo('<?xml version="1.0" encoding="ISO-8859-1" ?>\n');

Die Foren-Software schluckt leider ab und zu ein paar Backslashes. ;)

Edit: Ach ja, nach dem echo musst du natürlich mit "?>" den PHP-Teil wieder schließen.
 
So geht jetzt wie du um 17:58 beschrieben hast:
PHP:
<?php
  echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
  content="application/xhtml+xml; charset=UTF-8" />
  <link rel="stylesheet" media="screen,projection" type="text/css"
  title="Standardstylesheet" href="default.css" />
  <title>Startseite</title>
</head>

<body>
<div id="header">
<h1>Startseite</h1>
<h2>Home</h2>
<?php
echo("BLA");
?>
</div>
<div id="nav">
</div>
</body>
</html>

Thx @ all:bigok:

Werd mich an mein eigenes CMS ranmachen muhahahahahahaha
Betet, dass das Internet morgen noch geht........


EDIT (autom. Beitragszusammenführung):


Ahhhhhhhh Problem noch nicht ganz gelöst. Jetzt fängt jede Seite mit \n"); ?> an?
 
Zuletzt bearbeitet:
Wenn du deinen Webserver so einstellst das der Php Parser nur auf <?php reagiert solltest du kein Problem haben. Dann könnte der Code z.b. so aussehen:

PHP:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
  content="application/xhtml+xml; charset=UTF-8" />
  <link rel="stylesheet" media="screen,projection" type="text/css"
  title="Standardstylesheet" href="default.css" />
  <title>Startseite</title>
</head>

<body>
<div id="header">
<h1>Startseite</h1>
<h2>Home</h2>
<?php
echo("BLA");
?>
</div>
<div id="nav">
</div>
</body>
</html>
Dafür muss man in der php.ini die Zeile "short_open_tag = On" auf Off stellen.

Wo die php.ini ist kommt auf den verwendeten Server an.
Bei Debian mit Apache2 und PHP5 ist sie zu finden in /etc/php5/apache2/
 
@godsend101: Sry hatte vergessen das du ja bei bplaced bist (bzw hatte es nicht gelesen)

Wenn er den hat:
PHP:
<?php
  echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
?>
Dann ist das problem das "\"UTF-8\" ?>" am Ende.
Der Parser sieht dann das ?> und beendet den Php Code.
Er könnte den code so umbauen das er so aussieht:

PHP:
<?echo "<?"?>xml version="1.0" encoding="UTF-8" <?echo "?>"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
  content="application/xhtml+xml; charset=UTF-8" />
  <link rel="stylesheet" media="screen,projection" type="text/css"
  title="Standardstylesheet" href="default.css" />
  <title>Startseite</title>
</head>

<body>
<div id="header">
<h1>Startseite</h1>
<h2>Home</h2>
<?php
echo("BLA");
?>
</div>
<div id="nav">
</div>
</body>
</html>
 
Das hatten wir doch schon.
Der PHP Parser nimmt alle <? und ?> aus dem Text und denk da fängt bzw hört PHP Code auf.

EDIT: okay da hab ich mich geirrt. Man könnte deine oder auch meine Methode verwenden.
EDIT2: nein das selbe Problem wie er beschrieben hat:
Meine hingegen:
 
Zuletzt bearbeitet:
PHP:
<?php
  echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type"
  content="application/xhtml+xml; charset=UTF-8" />
  <link rel="stylesheet" media="screen,projection" type="text/css"
  title="Standardstylesheet" href="default.css" />
  <title>Startseite</title>
</head>

<body>
<div id="header">
<h1>Startseite</h1>
<h2>Home</h2>
<?php
echo("BLA");
?>
</div>
<div id="nav">
</div>
</body>
</html>
 

Online-Statistiken

Zurzeit aktive Mitglieder
0
Zurzeit aktive Gäste
1
Besucher gesamt
1

Beliebte Forum-Themen

X
Keine passende Antwort gefunden?