Как избежать нового линейного символа в файле .ini, чтобы Zend_config_ini читал его буквально?

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

Вопрос

Я пытаюсь сохранить электронную почту с несколькими строками в файле 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 nthis - это тестовое сообщение. Ngoodbye!

Вместо этого я хочу, чтобы электронное письмо выглядело так:

Привет, Джон,

Это тестовое сообщение.
Прощай!

Кто -нибудь знает, как это добиться? Спасибо!

Это было полезно?

Решение

What about using double-quotes arround your values, and using real newlines, like this :

message = "Hi {0},

This is a test message.
Goodbye!"


As an example, using this portion of code :

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

With application.ini containing this :

[production]

testmessage = "this is
a new
message"

I get the following output from my var_dump :

string(21) "this is
a new
message"

Другие советы

Use php constant: PHP_EOL

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

Note that the constant PHP_EOL in application.ini must appear outside of the quotation marks. Otherwise it'll be interpreted as a literal.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top