Comment puis-je échapper un caractère de nouvelle ligne dans un fichier .ini de sorte que Zend_Config_Ini lit littéralement?

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

Question

Je suis en train de stocker une ligne de plusieurs adresses e-mail dans un fichier ini en utilisant PHP / Zend Framework. Ma chaîne a de nouvelles lignes personnages, et quand je l'utilise Zend_Config_Ini pour analyser le fichier ini, les nouveaux personnages de ligne Reviens échappé, ils sont imprimés à l'écran, au lieu d'un saut de ligne.

Exemple:

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

est analysé par Zend_Config_Ini comme:

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

qui est ensuite imprimé dans le courrier électronique en tant que:

Salut Jean, \ n \ nLa est un message de test. \ NGoodbye!

Au lieu de cela, je veux l'e-mail à ressembler à ceci:

Salut John,

Ceci est un message de test.
Au revoir!

Quelqu'un sait comment y parvenir? Merci!

Était-ce utile?

La solution

Qu'en est-il en utilisant des guillemets doubles arround vos valeurs, et en utilisant les nouvelles lignes réelles, comme ceci:

message = "Hi {0},

This is a test message.
Goodbye!"


À titre d'exemple, en utilisant cette portion de code:

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

Avec application.ini contenant ceci:

[production]

testmessage = "this is
a new
message"

Je reçois la sortie suivante de mon var_dump:

string(21) "this is
a new
message"

Autres conseils

Utilisation constante php: PHP_EOL

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

Notez que la PHP_EOL constante application.ini doit apparaître en dehors des guillemets. Sinon, il sera interprété comme un littéral.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top