dedlfix: Quellcode ohne Zeilenumbrüche

Beitrag lesen

Hi!

Es gibt die Konstante PHP_EOL, die systemabhängig den passenden Wert für einen Zeilenumbruch enthält.

Nicht so wirklich. :)
PHP_EOL enthält das (oder die) Zeilenendezeichen des Systems, auf dem das Skript gerade läuft.

Genau das hab ich doch gesagt. Okax, "passend" bezieht sich auf das System und nicht auf das Problem. Aber dafür schrub ich ja noch den Rest, den du im Zitat weggelassen hast.

Und auch bei anderen Verwendungen hilft PHP_EOL eigentlich eher selten: Der Zeilenumbruch z.B. im SMTP-Mailprotokoll ist festgelegt, unabhängig vom System. Mailende PHP-Skripte müssen sich also daran halten.

Ja, wenn sie die Mail direkt am Ziel oder einem Relay-SMTP-Server abliefern. Üblicherweise überlassen sie diese Aufgabe aber einem Mail Transfer Agent, der meist auch noch auf dem selben System arbeitet. Und der hat dann die Aufgabe, die systemspezifischen Zeilenendezeichen in das vom Protokoll festgelegte Format zu bringen.

Es ist jedenfalls vergebene Liebesmüh, in einem PHP-Script SMTP-korrekte Zeilenendezeichen zu erstellen, wenn mail() mit dem Senden beauftragt wird. Denn diese Funktion verwendet intern für das Zusammenfügen der Headerzeilen und dem Mail-Text das einfache \n.

Lo!