【发布时间】:2016-06-09 13:36:25
【问题描述】:
有人可以解释一下区别 - 以及如何识别或更改格式吗?
我有一个简单的 HTML-Upload-Form,上传后我用 fgetcsv() 解析文件内容。解析后我有一个这样的数组
array(2) {
[0]=>
array(9) {
["OrderId"]=>
string(13) "FG-456887"
["Product"]=>
string(7) "B9876"
}
[1]=>
array(9) {
["OrderId"]=>
string(13) "FG-852562"
["Product"]=>
string(7) "B9877"
}
}
var_dump() 在使用带有或不带有 BOM 的文件时向我显示(显然)完全相同的转储,但是当我对该数组进行简单循环并检查 OrderId(CSV 中的第一个字段)是否为空时 - 这个当 CSV 在没有 BOM 的情况下编码时,总是失败。当我用 BOM 保存同一个文件时 - 一切正常。
foreach ($data as $position) {
$orderid = $position["OrderId"];
if (empty($orderid)) die('No orderid found');
}
这只是第一个字段 - 其他字段都可以。
【问题讨论】:
标签: php csv file-upload utf-8 byte-order-mark