2016-03-09 2 views
0

У меня есть CSV-файл, который выглядит следующим образом:fgetcsv не читает всю строку 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 

Как вы можете видеть, строка заканчивается на «» в колонке „Prijs“. Кто-нибудь может понять, почему он это делает?

+3

'fgetcsv ($ ФХ, 0, ";") ' –

+0

@E_p Я не знал, что он по умолчанию делит записи, я пытался сделать это вручную. Это действительно проблема. Если вы ответите, я пометю его. Спасибо – Fennek

+0

CSV означает файл с разделителями-запятыми. Ваш файл переменных разделяется запятой. Звучит законно, если вы вручную не установите разделитель. – apokryfos

ответ

1

основе http://php.net/manual/en/function.fgetcsv.php

fgetcsv может анализировать на основе различных разделителей (третий параметр) например: fgetcsv($fh, 0, "delimiter")

Итак, чтобы решить эту проблему:

<?php 
    while (($row = fgetcsv($fh, 0, ";")) !== false) { 
     // ... 
    }