Функция 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 )