SplFileObject::fputcsv

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

SplFileObject::fputcsvЗаписывает массив полей как CSV-строки

Описание

public SplFileObject::fputcsv(
    array $fields,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\",
    string $eol = "\n"
): int|false

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

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

fields

Массив значений.

separator

Необязательный параметр separator устанавливает разделитель полей (только один однобайтовый символ).

enclosure

Необязательный параметр enclosure устанавливает ограничитель полей (только один однобайтовый символ).

escape

Необязательный параметр escape устанавливает символ экранирования (не более одного однобайтового символа). Пустая строка ("") отключает собственный механизм экранирования.

eol

Необязательный параметр eol устанавливает пользовательскую последовательность конца строки.

Замечание:

Метод заэкранирует символ ограничителя полей enclosure путём удвоения, если поле содержит символ ограничителя, если только прямо перед символом ограничителя не стоит символ экранирования escape.

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

Метод возвращает длину строки, которую записал, или false, если возникла ошибка.

Метод возвращает false и не записывает CSV-строку в файл, если параметры separator или enclosure содержат больше одного символа.

Ошибки

Метод выдаёт ошибку уровня E_WARNING, если параметр separator или enclosure не односимвольный.

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

Версия Описание
8.1.0 Добавили необязательный параметр eol.
7.4.0 Параметр escape теперь принимает пустую строку для отключения механизма экранирования.

Примеры

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

<?php

$list
= array (
array(
'aaa', 'bbb', 'ccc', 'dddd'),
array(
'123', '456', '789'),
array(
'"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach (
$list as $fields) {
$file->fputcsv($fields);
}

?>

Приведённый пример записывает следующие строки в файл file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

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

  • fputcsv() - Форматирует строку в виде CSV и записывает её в файловый указатель
  • SplFileObject::fgetcsv() - Получает строку из указателя файла и анализирует её на CSV-поля

add a note

User Contributed Notes 1 note

up
0
sergiy dot sokolenko at gmail dot com
12 years ago
This method is available in PHP 5.4 and it is just a wrapper over php.net/fputcsv.
To Top