Dav*_*ris 4 php ini parsing zend-framework config
我试图通过用大括号括起来在.ini文件设置中包含一个变量,并且Zend抱怨它无法在Linux上正确解析它.它可以在Windows上正常工作:
welcome_message = Welcome, {0}.
Run Code Online (Sandbox Code Playgroud)
这是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
Run Code Online (Sandbox Code Playgroud)
如果我们用引号括起括号,我们就可以在Linux上消除错误,但这似乎是一个奇怪的解决方案:
welcome_message = Welcome, "{"0"}".
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决所有平台的这个问题?谢谢你的帮助,
戴夫
如何在引号之间传递整个消息?
有点像这样:
welcome_message = "Welcome, {0}."
Run Code Online (Sandbox Code Playgroud)
引用(可能使用)的文档:parse_ini_file Zend_Config_Ini
注意:如果ini文件中的值包含任何非字母数字字符,则需要将其括在双引号(
")中.
而且,(强调我的):
注意:保留字不得用作ini文件的键.
这些措施包括:null,yes,no,true,false,on,off,none.
值null,no并false在结果"",是在真正的结果"1".
字符{}|&~![()^"不得在键中的任何位置使用,并且在值中具有特殊含义.
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |