(PHP 4, PHP 5)
fgetcsv — Читает строку из файла и производит разбор данных CSV
$handle
[, int $length = 0
[, string $delimiter = ','
[, string $enclosure = '"'
[, string $escape = '\\'
]]]] )Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.
handleКорректный файловый указатель на файл, успешно открытый при помощи fopen(), popen() или fsockopen().
lengthДолжен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). Данный параметр стал необязательным в PHP 5. Если этот аргумент не указан (или равен 0 в версиях PHP 5.0.4 и выше), максимальная длина строки не ограничена, но функция работает немного медленнее.
delimiterУстанавливает разделитель поля (только один символ).
enclosureУстанавливает символ ограничителя поля (только один символ).
escapeУстанавливает экранирующий символ (только один символ). По умолчанию равен обратному слэшу.
Возвращает индексированный массив с прочтенными полями.
Замечание:
Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.
Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.
fgetcsv() возвращает NULL, если передаётся неверный
параметр handle или FALSE при других ошибках,
в том числе и по достижению конца файла.
| Версия | Описание |
|---|---|
| 5.3.0 |
Добавлен параметр escape
|
| 4.3.5 | fgetcsv() теперь безопасна для обработки бинарных данных |
| 4.3.0 |
Добавлен параметр enclosure
|
Пример #1 Чтение и вывод на экран содержимого CSV-файла
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num полей в строке $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
Замечание:
Эта функция принимает во внимание настройки локали. К примеру, если LANG установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.