ini – Блог Stafox'a https://stafox.cc О программировании и веб-разработке Sun, 10 Feb 2013 16:56:47 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.2 Ошибка парсинга ini-файла: unexpected TC_CONSTANT https://stafox.cc/php-ini-parsing-error-unexpected-tc_constant/ https://stafox.cc/php-ini-parsing-error-unexpected-tc_constant/#comments Mon, 11 Feb 2013 10:00:54 +0000 http://stafox.ru/?p=1957 Если Вы нашли эту статью через поисковые системы, то у Вас наверняка проблема с парсингом ini-файла. Я долго думал к какой категории отнести эту статью: Zend Framework или PHP. Недавно передо мной стояла задача: добавить мультиязычность (возможность использовать 2 и более языка) в один из проектов на Zend Framework. А для хранения строк я решил

Сообщение Ошибка парсинга ini-файла: unexpected TC_CONSTANT появились сначала на Блог Stafox'a.

]]>
Ошибка парсинга ini-файла: unexpected TC_CONSTANT
Если Вы нашли эту статью через поисковые системы, то у Вас наверняка проблема с парсингом ini-файла. Я долго думал к какой категории отнести эту статью: Zend Framework или PHP.
Недавно передо мной стояла задача: добавить мультиязычность (возможность использовать 2 и более языка) в один из проектов на Zend Framework. А для хранения строк я решил воспользоваться ini-адаптером (т.е. хранить данные в ini файлах). Но этому я планирую посвятить отдельную статью, да и все таки ошибка, которая возникла, относится непосредственно к PHP
[php]Warning: syntax error, unexpected TC_CONSTANT in /home/stafox/*/application/languages/en.ini on line 3[/php]

Вот вид того самого en.ini:
[php] home = home
downloads = downloads
no_limits = no limits
link = link

[/php]

Ну вот вообще не нравилась эта третья строка, а точнее слово no, т.к. если его убрать, все отлично. Чтобы выяснить в чем проблема – обратимся к документации PHP

Замечание:
Существует зарезервированные слова, которые нельзя использовать в качестве ключей в ini-файлах. Такими словами являются: null, yes, no, true, false, on, off, none. Значения null, no и false преобразуются в “”, yes и true преобразуются в 1. Символы

?{}|&~![()^"

не должны использоваться в ключах и иметь какой-либо особый смысл в значениях.

Таким образом, получается, что такие слова как no, null и т.д. использовать нельзя. Что же делать, спросите Вы, если это необходимо? Для этого обратим внимание на первое замечание.

Замечание:
Если значение в ini-файле содержит прочие символы, кроме букв и цифр, оно должно заключаться в двойные кавычки (“).

Т.е. наш файл нужно привести к вот такому виду:
[php] home = "home"
downloads = "downloads"
no_limits = "no limits"
link = "link"

[/php] И все будет работать как надо!

Сообщение Ошибка парсинга ini-файла: unexpected TC_CONSTANT появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/php-ini-parsing-error-unexpected-tc_constant/feed/ 2