Проблема с fgetcsv(). Решение.

Сегодня у меня возникла проблема с fgetcsv(). При импорте csv-файла данная функция PHP некорректно обрабатывала одно из значений, а именно произовдила урезание значения. Сразу я обратил внимание на то, что урезались только те значения, в которых были русские символы, но не придал этому особого значения, так как они урезались не полностью. Спустя почти 2 часа после возникновения проблемы было найдено решение.

Решение проблемы с импортом csv-файлов с помощью fgetcsv() заключается в принудительном выставлении локали в русскую непосредственно перед началом обработки *.csv:

setlocale(LC_ALL, «ru_RU»);

Соответсвенно, если вам необходимо произвести импорт csv с использованием каких-либо символов не английского алфавита, Вам нужно будет выставить соответсвующую локаль.

Проблема была описана в баг-треккере php, где, собственно, и найдено решение.

Надеюсь, эта статья сэкономит Вам время.

PHP 

Комментарии (6) »


  RSS комментариев этой записи.


Просто подписка на комментарии

  1. Я ничего из этого не понял, но да, ты такой и есть. Да здравствуют мудрые люди!

    Comment от Marvin — 30.04.2009 @ 11:48

  2. Скорее всего там дело в том, что русский, небось, в UTF-8 был…

    Comment от kstep — 25.05.2009 @ 11:56

  3. спс

    Comment от telhar — 10.12.2009 @ 09:02

  4. У меня та же беда, русский в UTF – иначе никак. Но и данное решение к сожалению не помогло. :/

    Comment от Ольга — 27.01.2010 @ 11:31

  5. ура!!
    setlocale(LC_ALL, ‘ru_RU.UTF-8′);
    помогло!!

    Comment от Ольга — 27.01.2010 @ 11:41

  6. Вот так вот, ужас просто, Галкин умер. А молодой совсем. Ему жить да жить еще и творить. Вот так вот ,вроде есть человек здоровый, энергичный и в один момент раз и не стало человека. Я просто не знаю, что ж такое то, прям последнее время происходит…

    Comment от barbysim — 27.02.2010 @ 17:39

Оставить комментарий


Сделано ctepeo на базе wordpress