Задать вопрос
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.
  • Вопрос задан
  • 2484 просмотра
Подписаться 3 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
Это старый баг, вкратце звучит так: "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
Старый прогер
Первое, что приходит в голову, это:
- окончание строк
- права доступа

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽