XML-Deklaration und PHP
Harald
- programmiertechnik
Hallo,
ich möchte meine Seite nun von HTML 4.0 auf XHTML umstellen, habe dabei aber folgendes Problem:
Ich setze auf meinen Seiten auch PHP ein, und so kommt es, da bei:
<?xml version="1.0" encoding="UTF-8"?>
gemeint wird, das abschließende ?> würde einen PHP-Block schließen, wo keine ist!
Wie kann ich das umgehen?
Hi,
ich möchte meine Seite nun von HTML 4.0 auf XHTML umstellen, habe dabei aber folgendes Problem:
Ich setze auf meinen Seiten auch PHP ein, und so kommt es, da bei:
<?xml version="1.0" encoding="UTF-8"?>
gemeint wird, das abschließende ?> würde einen PHP-Block schließen, wo keine ist!
Zwei Lösungen:
1. gib die xml-Deklaration per PHP aus
2. laß die xml-Deklaration weg (sie ist bei XML 1.0 nicht Pflicht, führt aber bei Anwesenheit z.B. im IE6 dazu, daß der Sloppy-Mode aktiviert wird).
cu,
Andreas
Hallo Harald,
Ich setze auf meinen Seiten auch PHP ein,
bei dem _zusätzlich_ short_open_tag aktiviert ist,
und so kommt es, da bei:
<?xml version="1.0" encoding="UTF-8"?>
gemeint wird, das abschließende ?> würde einen PHP-Block schließen, wo keine ist!
Nein, der Fehler rührt daher, dass <? für den Start eines PHP-Blocks gehalten wird.
Wie kann ich das umgehen?
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
Andererseit solltest Du Dir überlegen, ob Du XHTML-Dokumente mit XML-Deklaration ausliefern _willst_. Denn die XML-Deklaration setzt den Internet Explorer in den quirks rendering mode, andere Browser bleiben dagegen im standards complaint rendering mode; das führt dann zwangsläufig zu Kompabilitätsproblemen. Ich empfehle daher, XHTML-Dokumente so aufzubauen:
<!DOCTYPE .....>
<html xmlns="...">
...
und die XML-Deklaration komplett wegzulassen.
Viele Grüße,
Christian