Я использовал бы код, который генерирует отслеживание стека для пропущенной памяти в Визуальный Детектор Утечки . Это только работает над Win32, все же.
Как вы сказали в заголовке, 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-файла построчно и синтаксического анализа строки на массив.
Я думаю, что синтаксис 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>';