Wie entkomme ich einem neuen Zeilenzeichen in einer .ini -Datei, damit Zend_Config_ini es buchstäblich liest?
-
21-09-2019 - |
Frage
Ich versuche, eine E-Mail mit mehreren Zeilen-E-Mails in einer INI-Datei mit PHP/Zend-Framework zu speichern. Meine Zeichenfolge enthält neue Zeilenzeichen, und wenn ich Zend_Config_ini verwende, um die INI -Datei zu analysieren, kommen die neuen Zeilenzeichen zurück, sodass sie auf dem Bildschirm anstelle eines Zeilenfutters ausgedruckt sind.
Beispiel:
// ini file
message = Hi {0},\n\nThis is a test message.\nGoodbye!
wird von Zend_Config_ini als: analysiert:
Hi {0},\\n\\nThis is a test message.\\nGoodbye!
Dies wird dann in der E -Mail als:
Hallo John, n nthis ist eine Testnachricht. Ngoodbye!
Stattdessen möchte ich, dass die E-Mail so aussieht:
Hallo John,
Dies ist eine Testnachricht.
Auf Wiedersehen!
Weiß jemand, wie man das erreicht? Vielen Dank!
Lösung
Was ist mit der Verwendung von Doppelquotten Ihre Werte und mit echten Newlines wie folgt:
message = "Hi {0},
This is a test message.
Goodbye!"
Beispielsweise verwenden Sie diesen Teil des Codes:
$config = new Zend_Config_Ini(APPLICATION_PATH . '/config/application.ini');
var_dump($config->production->testmessage);
die;
Mit application.ini
enthält dies:
[production]
testmessage = "this is
a new
message"
Ich bekomme die folgende Ausgabe von meinem var_dump
:
string(21) "this is
a new
message"
Andere Tipps
Verwenden Sie PHP -Konstante: PHP_EOL
message = "Hi {0}," PHP_EOL PHP_EOL "This is a test message." PHP_EOL "Goodbye!"
Beachten Sie, dass das konstante php_eol in application.ini außerhalb der Anführungszeichen erscheinen muss. Ansonsten wird es als wörtliches interpretiert.