dedlfix: Frage zu dirname($_SERVER['PHP_SELF'])

Beitrag lesen

echo $begrüßung;

$link='http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'.'index.php';

Bis vor kurzen habe ich noch Apache und PHP4 benuzt, dort kam da http://domain.de/index.php raus. Nun bin ich auf PHP5 und Lighttpd umgestiegen. Nun ist daraus http://domain.de//index.php geworden. [...]Nur woher kommt das, das ich mal den Schrägstrich hinzufügen muss und mal nicht? Kommt das durch den anderen Webserver oder die andere PHP-Version?

Das ist durchaus möglich. Auf den Inhalt von $_SERVER hat PHP keinen Einfluss (vielleicht von PHP_SELF mal abgesehen). Man sollte sich nicht darauf verlassen, ein bestimmtes Feld auf allen Server-Konstellationen anzutreffen oder deren Inhalt als nur-so-und-nicht-anders vorzufinden.

Oder ist das an Anzeichen das ich irgendetwas falsch konfiguriert habe?

Glaub ich nicht.

Ich weiß das man ganz einfach Abfragen kann ob der Schrägstrich hinzugefügt werden muss oder nicht [...]

Ja, man kann sich dazu des wenig bekannten zweiten Parameters von (l|r)trim() bedienen:

$foo = '/' . trim(dirname(...), '/') . '/';

Dies ergibt garantiert nur jeweils ein / am Anfang und Ende von $foo.

echo "$verabschiedung $name";