Ошибка синтаксического анализа PHP ini

Я получаю сообщение об ошибке анализа ini для следующего ini-файла:

[photo]
price = 5.00

[shipping]
South Africa[value] = 50.00
South Africa[incremental] = 100

Pakistan[value] = 120.00
Pakistan[incremental] = 100

[discount]
min[quantity] = 50
min[value] = 5

max[quantity] = 150
max[value] = 10

[admin]
email = [email protected]
name = Admin
subject = Your order with xxx

Ошибка возникает в строке № 5

Это довольно странно. Тот же файл отлично работает на моей машине, но не на удаленном сервере.


person Volatil3    schedule 23.03.2012    source источник
comment
Будет ли это проанализировано в массив?   -  person Pekka    schedule 23.03.2012
comment
попробуйте указать поплавки, например. "50.00" вместо 50.00   -  person scibuff    schedule 23.03.2012
comment
@Pekka да, это будет в форме массива   -  person Volatil3    schedule 23.03.2012
comment
@scibuff Я попробую, он отлично работает на моей локальной машине   -  person Volatil3    schedule 23.03.2012
comment
@scibuff, помещая его в кавычки, не имело никакого значения. Та же ошибка   -  person Volatil3    schedule 23.03.2012
comment
как насчет того, если вы удалите эту строку ... она пройдет или произойдет сбой на какой-то другой строке?   -  person scibuff    schedule 23.03.2012
comment
о, попробуй заключить ключи массива в кавычки!, т.е. вместо South Africa[value] сделать South Africa["value"]   -  person scibuff    schedule 23.03.2012
comment
Скорее всего, это разница в реализации parse_ini_file на разных серверах.   -  person Pekka    schedule 23.03.2012
comment
@Vytautas PHP имеет встроенный парсер ini   -  person Volatil3    schedule 26.03.2012
comment
@scibuff Я только что использовал пример PHP, и это не сработало. [третий_раздел] версия php[a] = 5.0 версия php[b] = 5.1 версия php[c] = 5.2 версия php[d] = 5.3   -  person Volatil3    schedule 26.03.2012
comment
Я тестировал с parse_ini_file(), у меня отлично работает   -  person Vytautas    schedule 26.03.2012


Ответы (2)


Любая конкретная причина, по которой вы не можете сделать что-то вроде

$ini = array();

$ini["photo"]["price"] = 5.00;

$ini["shipping"]["South Africa"]["value"] = 50.00;
$ini["shipping"]["South Africa"]["incremental"] = 100;
person scibuff    schedule 23.03.2012
comment
Файл Ini будет использоваться тем, кто не знает программирования, это намного проще, чем установка массива в файле PHP. Дело в том, что он отлично работает на моей локальной машине, но не на удаленной. Есть ли проблема с версией или что-то еще - person Volatil3; 23.03.2012
comment
Такое значение, как *Южная Африка[значение], создает проблему, похоже, оно не принимает вложенные значения. - person Volatil3; 23.03.2012
comment
Хорошо, это подтверждено, он не анализирует вложенные значения, я не понимаю, почему это так. - person Volatil3; 23.03.2012
comment
какая версия php на сервере? - person scibuff; 23.03.2012
comment
Я скорее сделал это как массив PHP, как вы упомянули. Спасибо за вашу помощь - person Volatil3; 23.03.2012

Обновите до PHP5.3.1, чтобы анализировать значения вложенных переменных.

Мы только что подтвердили ту же проблему на одном из наших серверов LAMP, на котором также работает PHP 5.2.17.

Тот же код работает на другом сервере с PHP5.3.8.

person Arie    schedule 28.03.2012