我试图在.in i文件设置中包含一个变量,方法是用大括号将其括起来,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"}".

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

最佳答案

把整条信息放在引号之间怎么样?
有点像这样:

welcome_message = "Welcome, {0}."

引用parse_ini_file的文档(它可能会用到):
注意:如果ini文件中有一个值
包含任何非字母数字
需要包含的字符
双引号(Zend_Config_Ini)。
还有(强调我的):
注:有保留字
不能用作ini的键
文件夹。包括:"nullyes
notruefalseonoff。价值观
nonenullno导致false,是
真正的结果是""。文字
"1"不得使用
在钥匙上的任何地方
价值中的特殊意义。

09-07 10:25