vasilyev
@vasilyev
php, 1c-bitrix

Почему по-разному работает fgetcsv()?

Привет!

Есть csv файл. Я его пытаюсь прочитать с помощью fgetcsv();. На локальной машине (Win, PHP 5.4) все работает прекрасно. На сервере (Debian, PHP 5.3) не работает. Строку:
г.Воронеж  | фабрика | с февр.ООО "ААА" | lalalal@lalal.ru

Выводит в виде
Array
(
    [0] => .Воронеж  
    [1] => 
    [2] => .ООО "ААА" 
    [3] => lalalal@lalal.ru
)


Сам код простой, но тоже положу:
while(!feof($f)){
    $arUsers = fgetcsv($f, 0, '|');
    echo '<pre>' . print_r($arUsers, true) . '</pre>';
}


Кодировка файла -- UTF-8, локаль на сервере ru_RU.utf8.
  • Вопрос задан
  • 2479 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Это старый баг, вкратце звучит так: "This happens to every NON ASCII char as the first char in a cell."
https://bugs.php.net/bug.php?id=45356
https://bugs.php.net/bug.php?id=48507
И ещё несколько.
Попробуйте поиграться со stream_filter_prepend в обсуждении 48507 бага.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Первое, что приходит в голову, это:
- окончание строк
- права доступа

Включите режим отображения ошибок на дебиане, если не включены, проверьте код.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы