Экранирование запятой при загрузке .csv в базу данных с переполнением стека

Я пытаюсь сделать простую функцию 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);

0

Решение

Поставьте разделитель в качестве третьего аргумента

http://php.net/manual/en/function.fgetcsv.php

while(($line = fgetcsv($fileopen, 0, ";")) !== FALSE)

Я не думаю, что вам также нужна эта линия взрыва.

0

Другие решения

Других решений пока нет …