Я пытаюсь сделать простую функцию PHP, чтобы поместить файл .csv в базу данных. Проблема в том, что файлы разделяются точкой с запятой и по какой-то причине, когда ячейка содержит запятую, после нее все пропускается.
Например, файл .csv
manufacturer;comment;year
toyota;good car, bad color;1997
при печати с print_r()
функция
[0] => Array
(
[0] => manufacturer
[1] => comment
[2] => year
)
[1] => Array
(
[0] => toyota
[1] => good car
)
Вот код, который я использую.
//get the contents of the .csv file
$filepath = './files/csvfile.csv'
$fileopen = fopen($filepath,"r");
//create an empty array
$csv = array();
//go through the .csv file with fgetcsv()
while(($line = fgetcsv($fileopen,";")) !== FALSE)
{
$line = explode(";",$line[0]);$csv[] = $line;
}
//print the result
echo "<pre>";
print_r($csv);
echo "</pre>";
fclose($fileopen);
Поставьте разделитель в качестве третьего аргумента
http://php.net/manual/en/function.fgetcsv.php
while(($line = fgetcsv($fileopen, 0, ";")) !== FALSE)
Я не думаю, что вам также нужна эта линия взрыва.
Других решений пока нет …