Функция fgetcsv

Функция fgetcsv читает строку из файла и разбирает ее на поля в формате CSV. Первым параметром функция принимает указатель на открытый файл, вторым - максимальную длину строки, третьим - разделитель полей (по умолчанию запятая), четвертым - символ ограничителя (по умолчанию двойные кавычки), пятым - символ экранирования.

Синтаксис

phpfgetcsv(
  resource $handle,
  int $length = 0,
  string $separator = ",",
  string $enclosure = "\"",
  string $escape = "\"
);

Пример

Прочитаем CSV файл построчно и выведем содержимое:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file)) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Результат выполнения кода для файла с содержимым "a,b,c":

php['a', 'b', 'c']

Пример

Чтение CSV с указанием максимальной длины строки и кастомного разделителя:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 1000, ';')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Результат выполнения кода для файла с содержимым "a;b;c":

php['a', 'b', 'c']

Пример

Чтение CSV с кавычками и экранированием:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 0, ',', '"', '\')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

Результат выполнения кода для файла с содержимым '"a,b",c,"d\"e"':

php['a,b', 'c', 'd"e']

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

  • функцию fputcsv,
    которая записывает данные в CSV
  • функцию fgets,
    которая читает строку из файла