Forum Webscript.Ru
Программирование => PHP => Тема начата: Foshvad от 27 Апреля 2004, 11:32:29
-
Кто сталкивался с подобным:
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 – попробовать запустить это дело и запостить результат
-
А ты под 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\',
)
-
Причина проблемы выявлена, спасибо.
-
Вообще-то на форумах так заведено, что если ты решаешь свою проблему самостоятельно, ты всё равно описываешь причину ошибки и способ её устранения, насколько бы специфическими не были обстоятельства возникновения этой ошибки.
Лично мне всё равно, что у тебя была за ошибка, но ни что так не раздражает, чем найти на форуме подобную тему без решения, когда сам столкнулся с аналогичной проблемой.
-
Каюсь.
tony2001
в Zend Engine используется strtol() для приведения строки к числу.
вот, что говорит мануал по strtol:
--------------------------------------------------------------------------------
strtol(const char *nptr, char **endptr, int base);
Если base равно нулю или 16-и, то строка может начинаться с приставки `0x\', что означает использование шестнадцатеричной системы исчисления; иначе, если base равно нулю, используется десятичная система исчисления, кроме случая, когда последующий символ также равен `0\': тогда используется восьмеричная система исчисления.
см. тут функцию zend_atoi();
тут (http://cvs.php.net/co.php/ZendEngine2/zend_operators.c?r=1.191)
самый простой выход из ситуации: не называть секции "0...".
в этом случае, все будет нормально.
так что это был вовсе не глюк - надо либо отказаться от ZendEngine либо не использовать 0 в начале секции.