В PHP есть замечательная функция fgetcsv. Позволяет легко и просто читать значения из CSV файла.
Но в какой-то момент возникла проблема с тем что функция не читает поля содержащие кириллические символы в кодировке windows-1251. Но это проявляется не на всех серверах. И если использовате разделители текста, то все проходит нормально.
Проблема решается правильной установкой локали. Например так:
echo setlocale(LC_ALL, "ru_RU.cp1251");
Какие именно локали есть на сервере можно узнать в консоли командой locale -a