variables, y compris à l'intérieur des accolades dans une configuration Zend fichier ini sous Linux
-
21-09-2019 - |
Question
Je suis en train d'inclure une variable dans un cadre de fichier .ini en l'entourant avec des accolades, et Zend se plaint qu'il ne peut pas analyser correctement sous Linux. Il fonctionne correctement sous Windows, si:
welcome_message = Welcome, {0}.
Ceci est l'erreur qui est jeté sur 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
Nous sommes en mesure d'obtenir l'erreur d'aller sur Linux si nous entourons les accolades avec des guillemets, mais qui apparaît comme une solution étrange:
welcome_message = Welcome, "{"0"}".
Y at-il une meilleure façon de résoudre ce problème pour toutes les plates-formes? Merci pour votre aide,
Dave
La solution
Qu'en est-il d'avoir le message entier entre guillemets?
Un peu comme ceci:
welcome_message = "Welcome, {0}."
Citant la documentation parse_ini_file
(qui Zend_Config_Ini
peut utiliser) :
Note: Si une valeur dans le fichier ini contient une non-alphanumérique caractères dont il a besoin d'être enfermés dans guillemets doubles (
"
).
Et, aussi (Souligné par l'auteur) :
Note: Il y a des mots réservés qui ne doit pas être utilisé comme clés pour ini des dossiers.
Ceux-ci comprennent:null
,yes
,no
,true
,false
,on
,off
,none
. valeurs
null
, des résultats d'no
etfalse
à""
, oui et de vrais résultats dans"1"
.
Caractères{}|&~![()^"
ne doit pas être utilisé partout dans la clé et une signification particulière dans la valeur .