(PHP 5 >= 5.2.0, PHP 7, PHP 8)
SplFileObject::setCsvControl — Устанавливает символы разделителя, ограничителя и экранирования для CSV-полей
$separator
= ",", string $enclosure
= "\"", string $escape
= "\\"): voidМетод устанавливает символы разделителя полей, ограничителя значений полей и экранирования для CSV-полей.
separator
Разделитель поля (только один однобайтовый символ).
enclosure
Символ ограничителя поля (только один однобайтовый символ).
escape
Экранирующий символ (не более одного однобайтового символа).
Пустая строка (""
) отключает собственный механизм экранирования.
Строка в CSV-формате иногда перестаёт соответствовать стандарту » RFC 4180
или не выдерживает обмена информацией с PHP-функциями
для работы с CSV-строками, если для символа экранирования escape
устанавливают значение,
которое отличается от пустой строки ""
.
Значение по умолчанию для параметра escape
— "\\"
,
поэтому рекомендуют явно указывать пустую строку. Значение по умолчанию изменят в будущей версии PHP, но не раньше PHP 9.0.
Функция не возвращает значения после выполнения.
Версия | Описание |
---|---|
7.4.0 |
Теперь параметр escape принимает пустую строку
для отключения собственного механизма экранирования.
|
Пример #1 Пример использования метода SplFileObject::setCsvControl()
<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
list ($fruit, $quantity) = $row;
// Обрабатываем значения
}
?>
Содержимое data.csv
<?php apples|20 bananas|14 cherries|87 ?>