Функция PHP fgetcsv()

Определение и использование

Функция fgetcsv() читает строку из указателя файла и анализирует поля CSV.

С fgets() Аналогично, но fgetcsv() анализирует считанные строки и находит поля в формате CSV, затем возвращает массив этих полей.

fgetcsv() возвращает FALSE при ошибке, включая конец файла.

Комментарий:С PHP 4.3.5 функция fgetcsv() является двоично безопасной.

Синтаксис

fgetcsv(file,length,separator,enclosure)
Параметр Описание
file Обязателен. Определяет файл для проверки.
length

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

В PHP 5 параметр является опциональным. В версиях PHP 5 и ранее он является обязательным.

Если параметр игнорируется (в версиях PHP 5.0.4 и выше установлен в 0), длина не ограничивается, но может повлиять на эффективность выполнения.

separator Опционально. Установите символ разделителя полей (разрешен только один символ), по умолчанию это запятая.
enclosure

Опционально. Установите символы обрамления поля (разрешен только один символ), по умолчанию это двойные кавычки.

Этот параметр был добавлен в PHP 4.3.0.

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

Комментарий:Пустые строки в файле CSV будут возвращены как массив, содержащий один null-филд, и не будут считаться ошибкой.

Комментарий:Эта функция чувствительна к региональным настройкам. Например, если LANG установлено en_US.UTF-8, то файлы с однобайтовым кодированием могут давать ошибки при чтении.

Комментарий:Если PHP не может распознать символы завершения строки Macintosh в файле при чтении файла, можно активировать опцию выполнения конфигурации auto_detect_line_endings.

Пример

Пример 1

<?php
$file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file);
?>

Файл CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Вывод类似:

Массив 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
)

Пример 2

<?php
$file = fopen("contacts.csv","r");
while(! feof($file))
  {
  print_r(fgetcsv($file));
  }
fclose($file);
?>

Файл CSV:

George, John, Thomas, USA
James, Adrew, Martin, USA

Вывод类似:

Массив 
( 
[0] => George
[1] => John 
[2] => Thomas
[3] => USA
Массив
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)