Может ли кто-нибудь объяснить мне разницу - и как распознать или изменить формат?PHP CSV-Upload UTF-8 (с и без спецификации)
У меня простая форма загрузки HTML и после загрузки я разбираю содержимое файла с помощью 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 - все работает нормально.
foreach ($data as $position) {
$orderid = $position["OrderId"];
if (empty($orderid)) die('No orderid found');
}
И это только первое поле - другие поля в порядке.