4

我试图通过用花括号括起来在 .ini 文件设置中包含一个变量,而 Zend 抱怨它无法在 Linux 上正确解析它。但是,它在 Windows 上可以正常工作:

welcome_message = Welcome, {0}.

这是在 Linux 上抛出的错误:

:  Uncaught exception 'Zend_Config_Exception' with message 'Error parsing /var/www/html/portal/application/configs/language/messages.ini on line 10
' in /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php:181
Stack trace:
0 /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php(201): Zend_Config_Ini->_parseIniFile('/var/www/html/p...')
1 /usr/local/zend/share/ZendFramework/library/Zend/Config/Ini.php(125): Zend_Config_Ini->_loadIniFile('/var/www/html/p...')
2 /var/www/html/portal/library/Ingrain/Language/Base.php(49): Zend_Config_Ini->__construct('/var/www/html/p...', NULL)
3 /var/www/html/portal/library/Ingrain/Language/Base.php(23): Ingrain_Language_Base->setConfig('messages.ini', NULL, NULL)
4 /var/www/html/portal/library/Ingrain/Language/Messages.php(7): Ingrain_Language_Base->__construct('messages.ini', NULL, NULL, NULL)
5 /var/www/html/portal/library/Ingrain/Helper/Language.php(38): Ingrain_Language_Messages->__construct()
6 /usr/local/zend/share/ZendFramework/library/Zend/Contr in

如果我们用引号将大括号括起来,我们可以在 Linux 上消除错误,但这似乎是一个奇怪的解决方案:

welcome_message = Welcome, "{"0"}".

有没有更好的方法来解决所有平台的这个问题?谢谢你的帮助,

戴夫

4

1 回答 1

7

将整个信息放在引号之间怎么样?

有点像这样:

welcome_message = "Welcome, {0}."


引用可能使用)的文档:parse_ini_file Zend_Config_Ini

注意:如果 ini 文件中的值包含任何非字母数字字符,则需要将其括在双引号 ( ") 中。

而且,还有(强调我的)

注意:有些保留字不能用作 ini 文件的键。
其中包括:null, yes, no, true, false, on, off, none.
价值观 nullno结果false""是的,真实的结果"1"
字符 {}|&~![()^"不得在键中的任何位置使用,并且在值中具有特殊含义

于 2010-03-22T17:20:44.957 回答