我有一个csv文件,如下所示:
CODE;GROEP;SOORT;VOLGNR;REFERENCE;OMSCHRIJVING;PRIJS;STOCK;KOSTCOD1;KOSTBED1;KOSTCOD2;KOSTBED2;KOSTCOD3;KOSTBED3;KOSTCOD4;KOSTBED4;KOSTCOD5;KOSTBED5;EANCODE
101BE1573098;101;BE;1573098;A3L791B50CM-GRY;Belkin Patch Cable Cat5E assembled 0.5m;0,68;0;;;;;;;;;;;
101DE083104;101;DE;083104;083104;Kabel USB micro -B stekker USB-A 2.0 OTG 11cm;1,52;0;;;;;;;;;;;
101DE83510;101;DE;83510;83510;DELOCK Cable RJ45 Cat.5e SFTP angled / angled 0.5 m;2,21;0;;;;;;;;;;;4043619835102
101DE83511;101;DE;83511;83511;DELOCK Cable RJ45 Cat.5e SFTP angled / angled 1 m;2,81;0;;;;;;;;;;;4043619835119
101DE83512;101;DE;83512;83512;DELOCK Cable RJ45 Cat.5e SFTP angled / angled 2 m;4,1;0;;;;;;;;;;;4043619835126
我使用以下代码访问CSV文件
$fh = fopen($local_file, 'r');
if ($fh) {
$line = 0;
while ( ($row = fgetcsv($fh)) !== false ) {
if ($line == 0) {
$line++;
continue;
}
$values = explode( ';', $row[0] );
echo $row[0];
echo "</br>";
}
当我执行时,我得到了这个:
101BE1573098;101;BE;1573098;A3L791B50CM-GRY;Belkin Patch Cable Cat5E assembled 0.5m;0
101DE083104;101;DE;083104;083104;Kabel USB micro -B stekker USB-A 2.0 OTG 11cm;1
101DE83510;101;DE;83510;83510;DELOCK Cable RJ45 Cat.5e SFTP angled / angled 0.5 m;2
101DE83511;101;DE;83511;83511;DELOCK Cable RJ45 Cat.5e SFTP angled / angled 1 m;2
101DE83512;101;DE;83512;83512;DELOCK Cable RJ45 Cat.5e SFTP angled / angled 2 m;4
正如您所看到的,行结束于&#39;,&#39;在专栏&#39; PRIJS&#39;。有谁知道为什么会这样做?
答案 0 :(得分:1)
基于http://php.net/manual/en/function.fgetcsv.php
fgetcsv可以根据不同的分隔符进行解析(第3个参数)
例如:fgetcsv($fh, 0, "delimiter")
所以要解决这个问题:
<?php
while ( ($row = fgetcsv($fh, 0, ";")) !== false ) {
// ...
}