Включение переменных внутри фигурных скобок в файл Zend config ini в Linux
-
21-09-2019 - |
Вопрос
Я пытаюсь включить переменную в параметр файла .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"}".
Есть ли лучший способ решить эту проблему для всех платформ?Спасибо за вашу помощь,
Дэйв
Решение
Как насчет того , чтобы поместить все сообщение в кавычки ?
Немного похоже на это :
welcome_message = "Welcome, {0}."
Цитируя документацию по parse_ini_file
(который Zend_Config_Ini
мог бы использовать) :
Примечание:Если значение в ini-файле содержит какие-либо не буквенно-цифровые символы , его необходимо заключить в двойные кавычки (
"
).
И, кроме того (курсив мой) :
Примечание:Существуют зарезервированные слова, которые не должны использоваться в качестве ключей для ini файлов.
К ним относятся:null
,yes
,no
,true
,false
,on
,off
,none
.
Ценностиnull
,no
иfalse
приводит к""
, да и истинные результаты в"1"
.
Персонажи{}|&~![()^"
не должен использоваться нигде в ключе и имеют особое значение в значении.