Come faccio a sfuggire ad un carattere di nuova riga in un file .ini in modo che Zend_Config_Ini legge letteralmente?
-
21-09-2019 - |
Domanda
Sto cercando di memorizzare un multiplo di posta elettronica riga in un file ini utilizzando PHP / Zend Framework. La mia stringa ha nuove linee personaggi in essa, e quando uso Zend_Config_Ini per analizzare il file ini, i caratteri di nuova riga tornare sfuggito, in modo che siano stampati sullo schermo, al posto di un avanzamento riga.
Esempio:
// ini file
message = Hi {0},\n\nThis is a test message.\nGoodbye!
viene analizzato da Zend_Config_Ini come:
Hi {0},\\n\\nThis is a test message.\\nGoodbye!
che poi viene stampato nella e-mail come:
Ciao John, \ n \ nQuesto è un messaggio di prova. \ NGoodbye!
Invece voglio che la e-mail a questo aspetto:
Ciao John,
Questo è un messaggio di prova.
Addio!
Qualcuno sa come raggiungere questo obiettivo? Grazie!
Soluzione
Cosa succede ad usare virgolette arround i vostri valori, e l'utilizzo di nuove righe reali, in questo modo:
message = "Hi {0},
This is a test message.
Goodbye!"
Come esempio, utilizzando questa porzione di codice:
$config = new Zend_Config_Ini(APPLICATION_PATH . '/config/application.ini');
var_dump($config->production->testmessage);
die;
Con application.ini
che contiene questo:
[production]
testmessage = "this is
a new
message"
ottengo il seguente output dal mio var_dump
:
string(21) "this is
a new
message"
Altri suggerimenti
Utilizzare costante php: PHP_EOL
message = "Hi {0}," PHP_EOL PHP_EOL "This is a test message." PHP_EOL "Goodbye!"
Si noti che il PHP_EOL costante Application.ini deve apparire al di fuori delle virgolette. In caso contrario, sarà interpretato come un letterale.