如何转义.ini文件中的新行字符,以便Zend_Config_Ini按字面读取它?

时间:2010-03-19 19:35:58

标签: php zend-framework newline ini

我正在尝试使用PHP / Zend Framework在ini文件中存储多行电子邮件。我的字符串中有新的行字符,当我使用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这是一条测试信息。\ nGoodbye!

相反,我希望电子邮件看起来像这样:

嗨,约翰,

这是一条测试信息 再见!

有人知道如何实现这个目标吗?谢谢!

2 个答案:

答案 0 :(得分:12)

如何使用双引号围绕您的值,并使用真实的换行符,如下所示:

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"

答案 1 :(得分:1)

使用php常量:PHP_EOL

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

请注意,application.ini中的常量PHP_EOL必须出现在引号之外。否则,它将被解释为文字。