Ich habe ein seltsames Problem mit PHP Mail-Funktion, die ich einfach nicht herausfinden kann. Jede Zeile im E-Mail-Textkörper wird durch eine oder zwei neue Zeilen getrennt. Wenn ich jedoch einen Ternäroperator für eine der Zeilen verwende, wird die Zeile nicht unterbrochen. Der Code sieht etwa so aus:PHP mail linebreak Probleme mit ternären Operator in Körper
$body = 'This line breaks properly' . "\r\n" .
'This line also breaks properly' . "\r\n" .
'This one as well' . "\r\n\r\n" .
'This line ' . ($value == true ? 'breaks' : 'does not break') . ' properly' . "\r\n" .
'This one works fine' . "\r\n" .
'New line again';
mail('[email protected]', 'Test Email', $body, $headers);
Der Ausgang ich erhalte, ist:
This line breaks properly
This line also breaks properly
This one as well
This line does not break properly This one works fine
New line again
Ich habe doppelt und dreifach überprüft, um sicherzustellen, dass ich doppelte Anführungszeichen um jeden \r\n
, habe ich versucht ($value == true)
innerhalb der ternär, und ich habe versucht, Content-Type: text/plain;
in der Header-Zeichenfolge. Es funktioniert nur, wenn ich den ternären Operator vollständig entfernt habe. Ich benutze PHP 5.5.36, wenn das für das, was vor sich geht, relevant ist.
@ JoseManuelAbarcaRodríguez Ich habe das auch versucht, aber ich habe vergessen, es zu erwähnen. – mcon
@ JoseManuelAbarcaRodríguez Nein. Die Linie bricht immer noch nicht. – mcon
Versuchen Sie Ihren Code in http://phpfiddle.org/, es funktioniert für mich, also, du bist es. –