Christian Seiler: XML-Deklaration und PHP

Beitrag lesen

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