Как создать массив из файла CSV с помощью PHP и функции fgetcsv

Я использовал бы код, который генерирует отслеживание стека для пропущенной памяти в Визуальный Детектор Утечки . Это только работает над Win32, все же.

91
задан Thomas 13 August 2009 в 01:18
поделиться

2 ответа

Как вы сказали в заголовке, fgetcsv - это то, что вам нужно. Он чертовски прост в использовании.

$file = fopen('myCSVFile.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
  //$line is an array of the csv elements
  print_r($line);
}
fclose($file);

Вы захотите добавить сюда дополнительную проверку ошибок на случай, если fopen () выйдет из строя, но это работает для чтения CSV-файла построчно и синтаксического анализа строки на массив.

165
ответ дан 24 November 2019 в 06:40
поделиться

Я думаю, что синтаксис str_getcsv () намного чище, он также не требует хранения CSV в файловой системе.

$csv = str_getcsv(file_get_contents('myCSVFile.csv'));

echo '<pre>';
print_r($csv);
echo '</pre>';

Или для строки Построчное решение:

$csv = array();
$lines = file('myCSVFile.csv', FILE_IGNORE_NEW_LINES);

foreach ($lines as $key => $value)
{
    $csv[$key] = str_getcsv($value);
}

echo '<pre>';
print_r($csv);
echo '</pre>';

Или для построчного решения без str_getcsv ():

$csv = array();
$file = fopen('myCSVFile.csv', 'r');

while (($result = fgetcsv($file)) !== false)
{
    $csv[] = $result;
}

fclose($file);

echo '<pre>';
print_r($csv);
echo '</pre>';
50
ответ дан 24 November 2019 в 06:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: