我试图用PHP解析CSV文件。
文件使用
逗号分隔符
和
,作为:
foo,"bar, baz",foo2
我面临的问题是,我得到了包含逗号分隔的字段。我得到:
而不是:
2, rue du ...
.
编码:
apparently not BOM
,从ASCII转换为UTF8时如下所示:
ÿþ
)不会显示口音。
解析:
我试图用这一行代码进行解析(参见
those 2 comments
)使用
str_getcsv()
$csv = array_map('str_getcsv', file($file['tmp_name']));
然后我试着
fgetcsv()
$f = fopen($file['tmp_name'], 'r');
while (($l = fgetcsv($f)) !== false) {
$arr[] = $l;
}
$f = fclose($f);
在这两种情况下,我得到我的地址字段分为两部分。但是当我尝试这个代码示例时,我得到了正确解析的字段:
$str = 'foo,"bar, baz",foo2,azerty,"ban, bal",doe';
$data = str_getcsv($str);
echo '<pre>' . print_r($data, true) . '</pre>';
总结问题:
-
-
我怎么能确定编码呢?
UTF-16 LE
一开始不会出现奇怪的字符)
-
-
如果我应该依赖其他东西来解析CSV的行,我可以使用什么?