我正在逐行读取逗号分隔的CSV文件,然后使用PHP explode 函数分隔每个列值。问题是有些列本身有逗号(,)值,因此它们也会爆炸。
一行数据:
03,1392,06,1000,1,"1000,36,21,68",4,AF,TJ,AF,44071000
此处“1000,36,21,68”必须被视为单个值,但PHP爆炸也会破坏它。我知道这是爆炸如何工作,但是在这种情况下是否有任何替代功能可以使用。此外,我需要从此值中删除双方的双引号(“)。
答案 0 :(得分:2)
不要尝试使用爆炸并自行解析:
使用PHP的内置str_getcsv()函数
或使用fgetcsv()直接从文件
中读取和解析每一行修改强>
如果您真的有冒险精神,可以使用SPL来阅读和解析文件
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
var_dump($file->fgetcsv());
}
或
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $fields) {
var_dump($fields);
}