Hi!
Die short_open_tags solltest du dir gar nicht erst angewöhnen. Sobald du mal serverseitig XML verarbeiten willst, kann das Probleme machen.
"Serverseitig XML verarbeiten"? Dann müsste aber der PHP-Code in XML eingebettet sein und dann diese XML/PHP-Dateien verarbeitet werden. Das halte ich für ein äußerst seltenes Szenario. Anschließend müsste die Ausgabe ja auch noch durch eine XSL-Transformation gehen, zumindest wenn man Webseiten ausliefern will. Den Browsern XML+XSL vorzusetzen, ist vielleicht zu Testzwecken akzeptabel, sonst aber kaum.
Deshalb schalten viele Hoster dieses sogenannte Feature von vornherein ab.
Welche vielen Hoster sind das zum Beispiel? Zusatzfrage: Haben die zu viel Personal, um die durch das Abschalten entstandenen Supportfragen zu bearbeiten?
Schreibe also deine php-Tags aus, dann bist du auf der sicheren Seite.
Unabhängig von der in meinen Augen zweifelhaften Hoster-Aussage, bin ich hier zweigeteilter Meinung. Es ist ohne Zweifel so, dass einige PHP-Installationen mit deaktiviertem short_open_tags laufen und dann solche Scripte dort nicht direkt einsetzbar sind. Das betrifft in der Regel jedoch nur solche Scripte, die für die Weitergabe vorgesehen sind. Wer allerdings Einfluss auf die Konfiguration seiner PHP-Installation haben kann und bei selbst erzeugten Code mit dieser Problematik in Konflikt gerät, ist selbst schuld.
Andererseits spart man sich Tipparbeit und Zeichen, wenn man PHP als Templatesystem verwendet, also öfter mal kleinere Ausgaben in HTML-Code einfügen möchte.
Und der Konflikt mit der XML-Deklaration tritt praktisch nur dann auf, wenn man vollständige XHTML-Dokumente ausliefern lassen will, und sich die XML-Deklaration außerhalb eines <?php-?>-Bereiches befindet. Einerseits will man die XML-Deklaration üblicherweise nicht haben, weil man sich die dadurch entstehenden Nebenwirkungen auf das Rendering ersparen möchte. Andererseits gibt es den einfachen Workaround, die XML-Deklaration in PHP als String zu notieren und den auszugeben, wenn man sie denn unbedingt haben will.
Lo!