Что такое CSV и зачем нужна работа с ним в PHP?
CSV (Comma-Separated Values) — это формат хранения табличных данных, где строки разделены переводами строк, а столбцы — запятыми или другими разделителями. В PHP работа с CSV необходима для импорта/экспорта данных из Excel, Google Sheets, CRM-систем, а также для обработки логов и обмена данными между сервисами. Стандартная библиотека PHP предоставляет мощные средства для чтения и записи CSV без установки дополнительных модулей.
Основные функции для работы с CSV
В PHP есть встроенные функции: fgetcsv() — чтение строки CSV из файла, fputcsv() — запись массива в формате CSV, а также класс SplFileObject, который упрощает итерацию по CSV-файлам. Для работы с памятью можно использовать str_getcsv() для разбора строки без файла.
Установка
Дополнительная установка не требуется, так как функции являются частью ядра PHP. Для работы с CSV достаточно включить поддержку файловых операций (обычно включена по умолчанию).
Основные функции и их применение
- fgetcsv($handle, $length, $delimiter, $enclosure, $escape) — читает строку из открытого файла и возвращает массив полей.
- fputcsv($handle, $fields, $delimiter, $enclosure, $escape) — записывает массив как строку CSV в файл.
- str_getcsv($input, $delimiter, $enclosure, $escape) — разбирает строку CSV без файла.
- SplFileObject::fgetcsv() — метод для чтения CSV в объектно-ориентированном стиле.
Пример кода на PHP
<?php
// Чтение CSV файла
$filename = 'data.csv';
if (($handle = fopen($filename, 'r')) !== false) {
while (($data = fgetcsv($handle, 1000, ',')) !== false) {
echo 'Имя: ' . $data[0] . ', Email: ' . $data[1] . '<br>';
}
fclose($handle);
}
// Запись в CSV
$list = [
['Иван', 'ivan@example.com'],
['Мария', 'maria@example.com']
];
$handle = fopen('output.csv', 'w');
foreach ($list as $fields) {
fputcsv($handle, $fields);
}
fclose($handle);
// Использование SplFileObject
$file = new SplFileObject('data.csv');
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
print_r($row);
}
?>Когда использовать
Библиотека подходит для: импорта товаров из Excel в интернет-магазин, экспорта отчетов, обработки контактов из CRM, загрузки данных из Google Sheets через экспорт в CSV, а также для миграции данных между системами. Для больших файлов рекомендуется использовать итераторы SplFileObject или построчное чтение, чтобы избежать переполнения памяти.
Заключение
Встроенные средства PHP для работы с CSV — это надежное и быстрое решение для большинства задач. Они не требуют установки дополнительных библиотек, поддерживают различные разделители и экранирование, а также легко интегрируются с базами данных и веб-формами. Если вам нужно обрабатывать CSV в PHP, начните с fgetcsv() и fputcsv() — это стандарт де-факто.