Comprese le variabili all'interno delle parentesi graffe in un file ini Zend config su Linux
-
21-09-2019 - |
Domanda
Sto cercando di includere una variabile in un ambiente file .ini circondandolo con parentesi graffe, e Zend si lamenta che non può analizzare correttamente su Linux. Funziona correttamente in Windows, anche se:
welcome_message = Welcome, {0}.
Questo è l'errore che viene gettato su 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
Siamo in grado di ottenere l'errore di andare via su Linux, se ci circondano le parentesi con le citazioni, ma che sembra una soluzione strana:
welcome_message = Welcome, "{"0"}".
C'è un modo migliore per risolvere questo problema per tutte le piattaforme? Grazie per il vostro aiuto,
Dave
Soluzione
Che dire di avere l'intero messaggio tra virgolette?
Un po 'come questo:
welcome_message = "Welcome, {0}."
Citando la documentazione di parse_ini_file
(che potrebbe utilizzare Zend_Config_Ini
) :
Nota: Se un valore nel file ini contiene qualsiasi non alfanumerici personaggi cui ha bisogno per essere racchiusi in virgolette doppie (
"
).
E, anche (sottolineatura mia) :
Nota: Non ci sono parole riservate che non devono essere utilizzati come chiavi per ini File.
Questi includono:null
,yes
,no
,true
,false
,on
,off
,none
.
valorinull
,no
efalse
risultati in""
, sì e veri risultati in"1"
.
Personaggi{}|&~![()^"
non deve essere usato ovunque nella chiave e hanno una significato speciale nel valore .