Fgetcsv - wo liegt der Fehler?

Hallo,

für eine mehrsprachige Seite wird abhängig von der Sprache eine csv Datei importiert. Die Werte sollen in einem Array gespeichert werden.

Die Testausgabe funktioniert leider nicht. Weiss jemand wo der Fehler liegt?

// lg Parameter aufnehmen
$lg = $_GET[‚lg‘];

// Übersetzungsdatei öffnen
$csv = fopen („csv/$lg.csv“,„r“);

// Array mit Daten füllen
while (($text = fgetcsv($csv, 1000, „;“)) !== FALSE)
{
}

fclose ($csv);

// Testausgabe
print $text[2];

?>

So funktioniert die Testausgabe, allerdings nur wenn diese direkt nach der while Schleife erfolgt. Und dann auch nur ein mal.

// lg Parameter aufnehmen
$lg = $_GET[‚lg‘];

// Übersetzungsdatei öffnen
$csv = fopen („csv/$lg.csv“,„r“);

// Array mit Daten füllen
while (($text = fgetcsv($csv, 1000, „;“)) !== FALSE)

// Testausgabe
print $text[2];

?>

Hallo !

Hallo,

für eine mehrsprachige Seite wird abhängig von der Sprache
eine csv Datei importiert. Die Werte sollen in einem Array
gespeichert werden.

Die Testausgabe funktioniert leider nicht. Weiss jemand wo der
Fehler liegt?

Du überschreibst mit jedem Durchlauf in der while-Schleife den letzten Wert.
Entweder du nimmst ein 2dimensionales Array, oder packst die Auswertung in die Schleife.
Theoretisch sollte so wie du es hast in $text aber die entsprechende letzte Zeile drin stehen, evtl. ist diese leer, weil bei der Ausgabe nichts kommt ?

Für ein 2-Dimensionales Array:

// lg Parameter aufnehmen
$lg = $_GET[‚lg‘];

// Übersetzungsdatei öffnen
$csv = fopen („csv/$lg.csv“,„r“);

… das sollte man nicht so tun, jemand könnte da mal mit …/… etc. als lg Parameter auf Daten zugreifen, die er nicht sehen sollte. Wenigstens mit str_replace / und \ aus lg rauswerfen…

// Array mit Daten füllen
while (($text**[]** = fgetcsv($csv, 1000, „;“)) !== FALSE)
{
}

fclose ($csv);

// Testausgabe
print $text**[0]**[2]; // für die erste Zeile, 3. Spalte

?>

Alexander