2012-12-20 19 views
5

Powiel możliwe:
how to extract data from csv file in phpPlik PHP i CSV - jak wykryć koniec linii?

mam pewne dane w formacie XLS, zapisać je w formacie CSV, separatorem jest przecinek ** *. Potem próbuję wczytać dane z pliku CSV:

$input = explode("\r\n", fread($file, filesize("my_data.csv"))); 
print_r($input); 

Wyjście:

Array ([0] => data from the CSV file) 

To jest problem - w tablicy jest zawsze tylko jedna pozycja, w której drukowane są wszystkie dane z pliku CSV. Jak to możliwe? Dlaczego w tablicy nie ma tak dużo elementów, jak wiersze w pliku CSV?

Również próbowałem zmienić "\r\n" dla "\ n", ale to jest to samo.

Co próbuję zrobić - ładuję każdą linię z pliku CSV i każdą linię do przetworzenia.

przykład pliku:

a,b,c,d 
e,f,g,h 

WYJŚCIE:

a,b,c,d e,f,g,h

+2

Użyj wbudowanej funkcji fgetcsv() do odczytu danych CSV –

+0

Przyczyna, dla której nie używasz http://php.net/manual/en/function.fgetcsv.php? Nie próbuj osobno parsować danych CSV - będziesz mieć świat bólu z czymś bardziej złożonym niż prosta lista liczb. –

+0

Ale, chłopaki, jak rozwiązać ostatni przedmiot w rzędzie? Ponieważ ten ostatni element ma na końcu przecinek, więc ostatni element jest scalany z pierwszym elementem w drugim wierszu. – user984621

Odpowiedz

4

Polecam przy użyciu php zbudowany w funkcji odczytu pliku CSV fgetcsv() i nie tworzyć własne: http://php.net/manual/en/function.fgetcsv.php

if (($handle = fopen($file, "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $row = implode (",",$data); //puts back together the row from the csv 
     echo $row. "\n"; //assuming you want a visual linebreak on console, add the \n 
    } 
    fclose($handle); 
} 
+0

ja nie wiem, czy jest to błąd czy, ale kiedy próbuję to więc ostatni element w wierszu nie ma przecinka w końcu - co się mnie w kłopoty ... bo nie uzyskać oczekiwany wynik. – user984621

+0

Ray, proszę kasy OP, jest to wyjście, które otrzymuję jeśli użyję tego fragmentu - literą '' e' d' i są połączone w jednej pozycji. To jest cały mój problem, że nie wiem, jak rozwiązać. – user984621

0

Jak rozwiązać ten problem:

W pliku XLS, przed eksportem do pliku CSV, dodałem w końcu arkusza jeszcze jedną kolumnę z char '.

Powiązane problemy