2010-03-19 4 views
8

Ich versuche, eine mehrzeilige E-Mail in einer Ini-Datei mit PHP/Zend Framework zu speichern. Meine Zeichenfolge enthält neue Zeilen, und wenn ich Zend_Config_Ini zum Analysieren der Ini-Datei verwende, werden die neuen Zeilenzeichen zurückgemeldet, so dass sie auf dem Bildschirm anstelle eines Zeilenvorschubs ausgedruckt werden.Wie kann ich ein neues Zeilenzeichen in einer INI-Datei umgehen, so dass Zend_Config_Ini es wörtlich liest?

Beispiel:

// ini file 
message = Hi {0},\n\nThis is a test message.\nGoodbye! 

wird analysiert durch Zend_Config_Ini als:

Hi {0},\\n\\nThis is a test message.\\nGoodbye! 

die dann gedruckt wird, wie in der E-Mail aus:

Hallo John, \ n \ nDieser ist ein Test Nachricht. \ nGoodbye!

Stattdessen möchte ich die E-Mail wie folgt aussehen:

Hallo John,

Dies ist eine Testnachricht.
Auf Wiedersehen!

Weiß jemand, wie man das erreicht? Vielen Dank!

+0

Hallo, Haben Sie einen anderen Weg im Ini als mit doppelten Anführungszeichen gefunden? – dextervip

Antwort

12

Was doppelte Anführungszeichen arround Ihre Werte verwenden, und echte Zeilenumbrüche verwenden, wie folgt aus:

message = "Hi {0}, 

This is a test message. 
Goodbye!" 


Als Beispiel diesen Teil von Code verwendet:

$config = new Zend_Config_Ini(APPLICATION_PATH . '/config/application.ini'); 
var_dump($config->production->testmessage); 
die; 

Mit application.ini enthält diese:

[production] 

testmessage = "this is 
a new 
message" 

I erhalten die folgende Ausgabe von meinem var_dump:

string(21) "this is 
a new 
message" 
1

Verwendung von PHP Konstante: PHP_EOL

message = "Hi {0}," PHP_EOL PHP_EOL "This is a test message." PHP_EOL "Goodbye!" 

Beachten Sie, dass die Konstante PHP_EOL in application.ini außerhalb der Anführungszeichen erscheinen. Ansonsten wird es als Literal interpretiert.

Verwandte Themen