str_getcsv

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

str_getcsv Разбирает CSV-строку в массив

Описание

str_getcsv(
    string $string,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\"
): array

Функция разбирает входную строку по полям в формате CSV и возвращает массив c прочитанными полями.

Замечание:

Функция учитывает настройки локали. Функция иногда неправильно считывает строки в однобайтовой кодировке, если константа LC_CTYPE возвращает значение наподобие en_US.UTF-8.

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

string

Строка для разбора.

separator

Устанавливает разделитель поля; только один однобайтовый символ.

enclosure

Устанавливает символ ограничителя поля; только один однобайтовый символ.

escape

Устанавливает экранирующий символ; не больше одного однобайтового символа. Символ экранирования по умолчанию — обратный слеш: \. Пустая строка: "" отключает внутренний механизм экранирования.

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

Внимание

Строка в CSV-формате иногда перестаёт соответствовать стандарту » RFC 4180 или не выдерживает обмена информацией с PHP-функциями для работы с CSV-строками, если для символа экранирования escape устанавливают значение, которое отличается от пустой строки "". Значение по умолчанию для параметра escape"\\", поэтому рекомендуют явно указывать пустую строку. Значение по умолчанию изменят в будущей версии PHP, но не раньше PHP 9.0.

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

Функция возвращает индексный массив, который содержит прочитанные поля.

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

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

Примеры

Пример #1 Пример разбора CSV-строки в массив функцией str_getcsv()

<?php

$string
= 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);

var_dump($data);

?>

Результат выполнения приведённого примера:

array(5) {
  [0]=>
  string(3) "PHP"
  [1]=>
  string(4) "Java"
  [2]=>
  string(6) "Python"
  [3]=>
  string(6) "Kotlin"
  [4]=>
  string(5) "Swift"
}

Пример #2 Пример работы функции str_getcsv() с пустой строкой

Предостережение

Для пустой строки функция вместо пустого массива возвращает значение [null].

<?php

$string
= '';
$data = str_getcsv($string);

var_dump($data);

?>

Результат выполнения приведённого примера:

array(1) {
  [0]=>
  NULL
}

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

  • fgetcsv() - Получает строку из указателя файла и разбирает поля CSV-файла