Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как прочитать CSV-файл

Короткий ответ

Откройте файл и читайте строки функцией fgetcsv():

<?php
 
$file = sys_get_temp_dir() . '/recipe.csv';
file_put_contents($file, "name,price\nTea,250\nCoffee,400\n");
 
$handle = fopen($file, 'r');
 
while (($row = fgetcsv($handle, null, ',', '"', '')) !== false) {
    echo implode(' | ', $row), "\n";
}
 
fclose($handle);

Результат:

name | price
Tea | 250
Coffee | 400

Строки с названиями полей

Первую строку возьмите как заголовки и соедините с остальными через array_combine():

<?php
 
$file = sys_get_temp_dir() . '/recipe.csv';
file_put_contents($file, "name,price\nTea,250\nCoffee,400\n");
 
$handle = fopen($file, 'r');
$header = fgetcsv($handle, null, ',', '"', '');
$rows = [];
 
while (($row = fgetcsv($handle, null, ',', '"', '')) !== false) {
    $rows[] = array_combine($header, $row);
}
 
fclose($handle);
 
echo $rows[1]['name'], ' ', $rows[1]['price'];

Результат:

Coffee 400

Функции из этого ответа

  • fgetcsv — Читает строку файла CSV и разбирает её на поля.
  • fputcsv — Записывает массив в файл строкой CSV.
  • array_combine — Создаёт массив из двух списков: ключей и значений.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.