phpbar.de logo

Mailinglisten-Archive

[php] PHP Tag

[php] PHP Tag

Johannes Schlueter schlueter at phpbar.de
Son Nov 16 13:00:36 CET 2003


Hi,

> Waaah, was für ein Quark ;)

Mag sein...

> <?xxxx ...?> ist KEIN XML Tag. Ist es auch nie gewesen und wird es
> nicht sein. <?xxxx ?> ist eine sogenannte Processing Instruction (PI),
> also eine Art Einschub zur Verarbeitung vor Auslieferung. Genau das
> was PHP auch tut.

Das hette ich auch nicht geschrieben - war aber zu Faul da schon 
genau zu sein und das zu kritisieren.

> Der Inhalt zwischen <?php und ?> braucht NICHT XML
> konform zu sein. XML Parser sehen den gesamten Block als ein Element.
> Der Inhalt von PI's wird nicht von einem XML Parser interpretiert
> sonden bei SAX Parsern zum Beispiel an den PI-Handler weiter gereicht.
> Daher muß der Inhalt so ähnlich wie bei unparsed character data nicht
> XML konform sein. ;)

Das hatte ich irgendwo aber mal anders gelesen (mit einem Beispiel, 
wie dem von mir gebrachten) und im Hinterkopf behalten - finde es 
aber mit Google nichtmehr - war von jemandem mit einem doch recht 
bekannten Namen geschrieben - aber selbst das weiß ich nichtmehr im 
Detail...

Wie sieht es denn mit
  <?php echo '<?xml-stylesheet href="'.$s.'" type="text/xsl" ?>' ?>
aus, wo ist da die PI, laut Standard, zu Ende (reine Neugier...)? Mein 
Firebird und Opera wollen es jedenfalls nicht parsen ("unclosed token")
so wie ich es auch erwartet habe - d.h. wenn man XML-Konformen 
PHP-Source haben will und XML mitsamt Deklaration ausgeben will 
und auf short_open_tags = on rücksichtnehmen will muss man sowas 
wie
  <?php echo '<?xml version="1.0" ?'.'>'; ?>
machen - das akzeptieren die oben genannten Browser auch als XML.

> Nicht nur das - <? alleine ist keine XML konforme PI mehr ;)

Aber wer parst seinen PHP-Source schon mit 'nem XML-Parser?

johannes

P.S. foreach ($saetze_dieser_mail AS $satz) { $satz .= ' ;-)'; } - achne 
so funktioniert es nicht, da foreach auf 'ner Kopie des Arrays arbeitet.

php::bar PHP Wiki   -   Listenarchive