Как мне избежать символа новой строки в файле.ini, чтобы Zend Config Ini читал его буквально?
Я пытаюсь сохранить многострочное электронное письмо в ini-файле с использованием PHP/Zend Framework. В моей строке есть символы новых строк, и когда я использую Zend_Config_Ini для анализа ini-файла, новые символы строки возвращаются экранированными, поэтому они выводятся на экран вместо перевода строки.
Пример:
// ini file
message = Hi {0},\n\nThis is a test message.\nGoodbye!
Анализируется Zend_Config_Ini как:
Hi {0},\\n\\nThis is a test message.\\nGoodbye!
Который затем распечатывается в электронном письме как:
Привет, Джон,\n\N Это тест сообщение.\Прощай!
Вместо этого я хочу, чтобы электронное письмо выглядело так:
Привет, Джон,
Это тестовое сообщение.
До свидания!
Кто-нибудь знает, как этого добиться? Спасибо!
2 answers
Как насчет использования двойных кавычек вокруг ваших значений и использования реальных новых строк, например:
message = "Hi {0},
This is a test message.
Goodbye!"
В качестве примера, используя эту часть кода:
$config = new Zend_Config_Ini(APPLICATION_PATH . '/config/application.ini');
var_dump($config->production->testmessage);
die;
С application.ini
, содержащим это:
[production]
testmessage = "this is
a new
message"
Я получаю следующий вывод из моего var_dump
:
string(21) "this is
a new
message"
Используйте константу php: PHP_EOL
message = "Hi {0}," PHP_EOL PHP_EOL "This is a test message." PHP_EOL "Goodbye!"
Обратите внимание, что константа PHP_EOL в файле application.ini должна находиться вне кавычек. В противном случае это будет истолковано как буквальное.