使用 PHP 将 .csv 上传到数据库时转义逗号
Escaping a comma when uploading a .csv to a database with PHP
我正在尝试执行一个简单的 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)
我认为你也不需要那条爆炸线。
我正在尝试执行一个简单的 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)
我认为你也不需要那条爆炸线。