Incluindo variáveis ​​dentro de aparelhos encaracolados em um arquivo de configuração Zend ini no Linux

StackOverflow https://stackoverflow.com/questions/2494303

Pergunta

Estou tentando incluir uma variável em uma configuração de arquivo .ini ao redor com aparelhos encaracolados, e Zend está reclamando que não pode analisá -lo corretamente no Linux. Funciona corretamente no Windows, no entanto:

welcome_message = Welcome, {0}.

Este é o erro que está sendo jogado no 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

Somos capazes de obter o erro para desaparecer no Linux se cercarmos o aparelho com citações, mas isso parece uma solução estranha:

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

Existe uma maneira melhor de resolver esse problema para todas as plataformas? Obrigado pela ajuda,

Dave

Foi útil?

Solução

Que tal ter toda a mensagem entre aspas?

Um pouco assim:

welcome_message = "Welcome, {0}."


Citando a documentação de parse_ini_file (que Zend_Config_Ini pode usar) :

NOTA: Se um valor no arquivo ini contiver personagens não alfanuméricos, ele precisará ser incluído em citações duplas (").

E também (ênfase meu) :

Nota: Existem palavras reservadas que não devem ser usadas como chaves para arquivos INI.
Esses incluem: null, yes, no, true, false, on, off, none.
Valores null, no e false resulta em "", sim e verdadeiros resultados em "1".
Personagens {}|&~![()^" não deve ser usado em nenhum lugar da chave e ter um significado especial no valor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top