SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fgetcsv Получает строку из указателя файла и анализирует её на CSV-поля

Описание

publicSplFileObject::fgetcsv(string$separator = ",", string$enclosure = "\"", string$escape = "\\"): array|false

Метод получает строку из CSV-файла и возвращает массив с прочитанными полями.

Замечание:

Метод учитывает настройки локали. Если для константы LC_CTYPE установили значение, например, en_US.UTF-8, метод может неправильно прочитать файлы в однобайтовой кодировке.

Список параметров

separator

Разделитель полей (только один однобайтовый символ). По умолчанию это запятая или символ, который задали методом SplFileObject::setCsvControl().

enclosure

Символ ограничителя полей (только один однобайтовый символ). По умолчанию это двойные кавычки или значение, которое установили методом SplFileObject::setCsvControl().

escape

Экранирующий символ (не более одного однобайтового символа). По умолчанию это обратный слеш (\) или значение, которое установили методом SplFileObject::setCsvControl(). Пустая строка ("") отключает собственный механизм экранирования.

Замечание: Обычно символ enclosure экранируется внутри поля путём удваивания; однако, символ escape разрешается использовать как альтернативу. Поэтому у значений по умолчанию для этих параметров "" и \" одинаковые значения. Кроме разрешения экранировать символ enclosure символ escape не имеет особого значения; он даже не экранирует самого себя.

Возвращаемые значения

Метод возвращает массив, который содержит данные прочитанной строки, или false, если возникла ошибка.

Замечание:

Пустая строка CSV-файла будет возвращаться в виде массива, который содержит единственный элемент null, если не используется SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, и тогда пустые строки пропускаются.

Список изменений

ВерсияОписание
7.4.0 Теперь параметр escape принимает пустую строку для отключения собственного механизма экранирования.

Примеры

Пример #1 Пример использования метода SplFileObject::fgetcsv()

<?php

$file
= new SplFileObject("data.csv");

while (!
$file->eof()) {
var_dump($file->fgetcsv());
}

?>

Пример #2 Пример использования SplFileObject::READ_CSV

<?php
$file
= new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach (
$file as $row) {
list(
$animal, $class, $legs) = $row;
printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>

Contents of animals.csv

crocodile,reptile,4 dolphin,mammal,0 duck,bird,2 koala,mammal,4 salmon,fish,0

Вывод приведённого примера будет похож на:

A crocodile is a reptile with 4 legs A dolphin is a mammal with 0 legs A duck is a bird with 2 legs A koala is a mammal with 4 legs A salmon is a fish with 0 legs

Смотрите также

To Top