Robert Bienert: PHP und XHTML

Beitrag lesen

Hallo,

Moin!

ich habe ein Problem damit, mit PHP ein gültiges XHTML 1.0 Dokument auszuliefern.

Kenne ich.

Am Anfang hatte ich das Problem, dass der Validator vom W3C das Dinge nur als text/html erkannt hat und auch so validiert hat (damit war es gültig).

Du meinst, er hat es als HTML 4.0 statt als XHTML 1.0 validiert? Sollte er normalerweise nicht, sofern der DOCTYPE stimmt.

Eine manuelle Einstellung über einen Meta Tag oder eine verzeichnislokale .htaccess Datei hat nicht geholfen (oder ich hab was falsch gemacht...).

Wahrscheinlich, schauen wir mal. Meinst du den http-equiv meta Tag? Damit kann man den Webserver _bitten_ diese Angabe auszulesen und an den Client zu senden. In PHP erreichst du das aber _auf alle Fälle_, indem du den header('Content-Type: application/xhtml+xml'); sendest. Aber Vorsicht: Der IE weiß dann nicht mehr, dass das (X)HTML ist und will die Datei herunterladen statt anzeigen.

Als ich dann den

AddType application/xhtml+xml .php

in die Apache httpd.conf geschrieben habe (was ich später bei meinem Provider schwerlich tun werden kann), wurde das Dokument nicht mehr angezeigt, weil der XML Parser sich an den <?php ... ?> einschüben stört.

Welcher XML-Parser? Aber die Ausgabe des Default-Content-Types bei PHP kommt von dessen Interpreter, _nicht_ vom Apachen.

Gruß, Robert