Come faccio a sfuggire ad un carattere di nuova riga in un file .ini in modo che Zend_Config_Ini legge letteralmente?

StackOverflow https://stackoverflow.com/questions/2480091

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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top