2017-09-20 3 views
0

Import ich ständig den obigen Fehler erhalten, wenn Daten aus CSV-Import mit dem folgenden Code:PHP Notice: Undefined Offsetfehler, wenn aus CSV

$csv_data=file_get_contents("data3_received.csv"); 
foreach(preg_split("/((\r?\n)|(\r\n?))/", $csv_data) as $line){ 
list($service_id, $ki3) = explode(',', $line,2); 

Die Datenimporte wie erwartet, aber das Fehlerprotokoll füllt bis wir den gleichen Code in mehreren PHP-Skripten verwenden. Der Fehler ist in der folgenden Zeile:

list($service_id, $ki3) = explode(',', $line,2); 

Versucht, den Vorschlag mit hier: Undefined offset error on php when importing a CSV ohne Erfolg, und andere auf der Website.

Jede Hilfe mit diesem wäre sehr willkommen.

Antwort

2

Da list() versucht, zwei Variablen zuzuweisen, versucht es auf zwei Array-Elemente [0] und [1] zuzugreifen. Da in der Zeile kein Komma vorhanden ist, existiert [1] nicht.

versuchen einige verschiedene Funktionen:

$csv_data = file("data3_received.csv", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

foreach($csv_data as $line) { 
    $data[] = str_getcsv($line); 
} 

einzelnen Variablen, die Sie überprüfen müssen, um bekommen, wenn Sie mehr als eine Spalte haben, oder etwas ähnliches:

if(count($data = str_getcsv($line)) > 1) { 
    list($service_id, $ki3) = $data; 
} else { 
    $service_id = $data[0]; 
} 
+0

Able jetzt ohne Fehler laufen, aber Wie kann ich die Daten, dh jeden Spaltenwert als Variable verwenden? – djd

+0

Edited eine Möglichkeit. – AbraCadaver

+0

das tut genau das, was ich tun muss, danke! – djd

Verwandte Themen