Einschließlich Variablen in geschweiften Klammern in einer INI-Datei config Zend auf Linux
-
21-09-2019 - |
Frage
Ich versuche, eine Variable in einer INI-Datei Einstellung einschließen indem sie sie mit geschweiften Klammern umgeben, und Zend beschwert, dass es nicht richtig auf Linux analysieren kann. Es funktioniert auf Windows, aber:
welcome_message = Welcome, {0}.
Das ist der Fehler, der auf Linux geworfen wird:
: 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
Wir sind in der Lage, den Fehler zu bekommen auf Linux gehen weg, wenn wir die Klammern mit Anführungszeichen umgeben, aber das scheint wie eine seltsame Lösung:
welcome_message = Welcome, "{"0"}".
Gibt es einen besseren Weg, um dieses Problem für alle Plattformen zu lösen? Vielen Dank für Ihre Hilfe,
Dave
Lösung
Was ist die gesamte Nachricht in Anführungszeichen zu haben?
Bit A wie folgt aus:
welcome_message = "Welcome, {0}."
Unter Angabe der Dokumentation von parse_ini_file
(die Zend_Config_Ini
verwenden könnte) :
Hinweis: Wenn ein Wert in der ini-Datei enthält keine nicht-alphanumerische Zeichen in eingeschlossen werden muss doppelte Anführungszeichen (
"
).
Und auch (Hervorhebung von mir) :
Hinweis: Es gibt reservierte Worte, die darf nicht als Schlüssel für ini verwendet werden Dateien.
Dazu gehören:null
,yes
,no
,true
,false
,on
,off
,none
.
Wertenull
,no
undfalse
Ergebnisse in""
, ja und echte Ergebnisse in"1"
.
Charaktere{}|&~![()^"
darf nicht verwendet werden überall auf der Taste und Haben Sie einen besondere Bedeutung in dem Wert .