$_SERVER['SERVER_SIGNATURE'] address Tag
Powl
- php
Hallo,
Auf einer Fehlerseite möchte ich gerne die Angabe der $_SERVER['SERVER_SIGNATURE'] einbinden. Das funktioniert auch soweit.
Die Ausgabe im Quelltext ist dann etwa:
<address>Apache bla blubb</address>
, jedenfalls auf meinem lokalen Server.
Auf einem komerziellen Webspace aber ist die Ausgabe dagegen:
<ADDRESS>Apache bla blubb</ADDRESS>!
So what könnte man meinen. Dachte ich auch erst, bis mir auffiel, daß xhtml 1.0 strict mit GROSSEN tags nicht validiert.
Gut, dann lasse ich also nicht mehr
$_SERVER['SERVER_SIGNATURE']
ausgeben, sondern
preg_replace('/ADDRESS/', "address", $_SERVER['SERVER_SIGNATURE']);
Damit ist das Problem aber wohl eher umgangen, als gelöst?
Gibt es da eine bessere Möglichkeit? Kann man serverseitig festlegen, ob klein- oder großgeschriebene Tags verwendet werden?
netten Tag
^da Powl
Hallo Powl.
Gut, dann lasse ich also nicht mehr
$_SERVER['SERVER_SIGNATURE']
ausgeben, sondern
preg_replace('/ADDRESS/', "address", $_SERVER['SERVER_SIGNATURE']);
Ein regulärer Ausdruck ist hier nun wirklich nicht erforderlich.
Besser so:
str_replace('ADDRESS>', 'address>', $SERVER['SERVER_SIGNATURE']);
Damit ist das Problem aber wohl eher umgangen, als gelöst?
Gibt es da eine bessere Möglichkeit? Kann man serverseitig festlegen, ob klein- oder großgeschriebene Tags verwendet werden?
Mir ist dies bisher noch nie untergekommen. Welche PHP–Versionen verwendest du auf den jeweiligen Servern? Ich könnte mir vorstellen, dass bei einer älteren Version noch nicht auf XHTML–Konformität geachtet wurde.
Einen schönen Donnerstag noch.
Gruß, Ashura
echo $begrüßung;
preg_replace('/ADDRESS/', "address", $_SERVER['SERVER_SIGNATURE']);
Für diese einfache Stringersetzung lohnt sich das Anwerfen der RegExp-Maschinerie nicht. Ein str_replace() wäre angebrachter.
Gibt es da eine bessere Möglichkeit? Kann man serverseitig festlegen, ob klein- oder großgeschriebene Tags verwendet werden?
Ja, so in etwa. Du kannst mit der Apache-Direktive ServerSignature selbige ganz ausschalten und ab Version 2.0.44 mit ServerTokens anpassen. Das <address> bzw. <ADDRESS> ist jedoch, so scheint mit, nicht konfigurierbar im Apache-Quelltext verankert (Version 2.0.58, Datei server/core.c, Zeile 2379ff.). Vermutlich war es in früheren Versionen groß geschrieben.
echo "$verabschiedung $name";
Hallo,
Danke für die Antwort. str_replace() ist ein guter Tipp, ist geändert.
Die groß- oder kleingeschriebenen Tags, liegen tatsächlich an der Apacheversion, wie es scheint.
Lokal: Apache/2.2.0 (Win32) kleiner Tag
Komerziell: Apache/1.3.26 Linux GROSSER Tag
Wobei ich mich frage, wieso es für xhtml einen Unterschied macht, ob man tags jetzt groß oder klein schreibt. Irgendwie kommt mir das ziemlich gleich vor.
wünsche ich Euch einen _netten_ Tag ;)
^da Powl
Hallo Powl.
Wobei ich mich frage, wieso es für xhtml einen Unterschied macht, ob man tags jetzt groß oder klein schreibt. Irgendwie kommt mir das ziemlich gleich vor.
Weil dies in der Natur von XML ist, von welchem XHTML ja auch „nur“ ein Derivat ist. Dort werden Elemente case–sensitive verarbeitet, weil dies in der SGML–Definition von XML so festgelegt wurde.
Siehe hierzu „Comparison of SGML and XML“.
Einen schönen Donnerstag noch.
Gruß, Ashura