Автор Тема: Проблема с парсингом в parse_ini_file() в 4.3.6  (Прочитано 3376 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Кто сталкивался  с подобным:

Linux 2.4.21-9.0.3.ELsmp
Server API  CGI
PHP Version 4.3.6


INI файл:
Цитировать

[01]
a= a1

[02]
b= b1

[03]
c= c1

[04]
d= d1

[05]
e= e1

[06]
f= f1

[07]
g= g1

[08]
k= k1

[09]
l= l1

[10]
m= m1

[11]
n= n1



результат работы parse_ini_file($file,true):


Array
(
    [
1] => Array
        (
        )

    [
2] => Array
        (
        )

    [
3] => Array
        (
        )

    [
4] => Array
        (
        )

    [
5] => Array
        (
        )

    [
6] => Array
        (
        )

    [
7] => Array
        (
        )

    [
0] => Array
        (
        )

    [
10] => Array
        (
        )

    [
11] => Array
        (
        )

)




Пропущены 8-я и 9-я секция

Файл многократно переписывался и создавался заново в поисках скрытых символов – большая просьба – у кого работает PHP как CGI – попробовать запустить это дело и запостить результат

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Проблема с парсингом в parse_ini_file() в 4.3.6
« Ответ #1 : 27 Апреля 2004, 20:38:43 »
А ты под SAPI пробовал?

PHP 4.3.6. SAPI, мой результат:
array (
  \
'a\' => \'a1\',
  \'b\' => \'b1\',
  \'c\' => \'c1\',
  \'d\' => \'d1\',
  \'e\' => \'e1\',
  \'f\' => \'f1\',
  \'g\' => \'g1\',
  \'k\' => \'k1\',
  \'l\' => \'l1\',
  \'m\' => \'m1\',
  \'n\' => \'n1\',
)
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с парсингом в parse_ini_file() в 4.3.6
« Ответ #2 : 28 Апреля 2004, 09:51:59 »
Причина проблемы выявлена, спасибо.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Проблема с парсингом в parse_ini_file() в 4.3.6
« Ответ #3 : 28 Апреля 2004, 21:49:30 »
Вообще-то на форумах так заведено, что если ты решаешь свою проблему самостоятельно, ты всё равно описываешь причину ошибки и способ её устранения, насколько бы специфическими не были обстоятельства возникновения этой ошибки.
Лично мне всё равно, что у тебя была за ошибка, но ни что так не раздражает, чем найти на форуме подобную тему без решения, когда сам столкнулся с аналогичной проблемой.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с парсингом в parse_ini_file() в 4.3.6
« Ответ #4 : 29 Апреля 2004, 09:07:09 »
Каюсь.

Цитировать

tony2001
в Zend Engine используется strtol() для приведения строки к числу.
вот, что говорит мануал по strtol:
 
--------------------------------------------------------------------------------

strtol(const char *nptr, char **endptr, int base);
Если base равно нулю или 16-и, то строка может начинаться с приставки `0x\', что означает использование шестнадцатеричной системы исчисления; иначе, если base равно нулю, используется десятичная система исчисления, кроме случая, когда последующий символ также равен `0\': тогда используется восьмеричная система исчисления.
 

см. тут функцию zend_atoi();
тут

самый простой выход из ситуации: не называть секции "0...".
в этом случае, все будет нормально.




так что это был вовсе не глюк - надо либо отказаться от ZendEngine либо не использовать 0 в начале секции.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28