Поведение функции fgetcsv

Alex_v.tv

Новичок
Поведение функции fgetcsv

Добрый день!

Проблема:
PHP:
while ($data = fgetcsv ($fp, 1000, ";"))
{
    $num = count ($data);
    $rec = '';

    for ($c=0; $c < $num; $c++)
    {
	    $rec .= $data[$c]."|";
     }
}
код работал абсолютно нормально до недавнего времени. Сейчас у клиента происходит следующее:
если после ";" в файле *.csv идут символы кириллицы, они пропускаются до любого некириллического символа. Если ставим перед проблемным символом любой другой - всё ок.
Например:
1;add;col - обработает как надо
2;Иванов-Петров;col - echo $rec; выведет: 2|-Петров|col
3;Иванов;col - echo $rec; выведет: 2||col
4;nИванов;col - echo $rec; выведет: 2|nИванов|col
Проблема есть только у клиента, на localhost и на других серверах всё нормально. Клиент божится, что ничего не менял в настройках сервера. Доступа к его конфигам у меня нет. php версии 5.2

Собственно вопрос: в чём причина? голову сломал, причину пока не нашёл...

Спасибо.
 

Qwertz

Новичок
может проблема в кодировке...?
Юникод там и т.п....
а как файл та открывается?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Проблема есть только у клиента
Возможно у клиента "кривой" файл?

[m]phpinfo[/m] на проблемном хостинге запрещён?

-~{}~ 08.04.07 03:15:

Может баг?

bugs.php.net
 

Alex_v.tv

Новичок
может проблема в кодировке...?
колдировка 1251
Возможно у клиента "кривой" файл?
фай юзаю один и тот же, тестировал на разных, всё едино
проблема не в файле
Не пора ли PHP обновить?
у клиента 5.2, у меня 5.1 и всё нормально
лазил по манам, не нашёл какой-либо разницы, могущей повлиять на такое поведение функции
или может я невнимательно смотрел?
но опять же, клиент клянётся, что ничего не менял, а раньше всё работало...

по-видимому глюк какой-то (
 

SiMM

Новичок
Только что проверил на 5.2.0 (cli) под WinXP - не воспроизводится.
 

Alex_v.tv

Новичок
Только что проверил на 5.2.0 (cli) под WinXP - не воспроизводится
извините, что не воспроизводится? проблема?

-~{}~ 10.04.07 17:05:

резюме:

решения не нашёл, обошёл проблему использованием
fget() и зетем split()

может кому пригодится...
 
Сверху