Hallo Michael,
Aber wenn Du CSV-Dateien auslesen willst, dann hilft Dir vielleicht
http://php3.de/manual/de/function.fgetcsv.php weiter.danke, die funktion kannte ich noch nicht, löst aber leider mein problem
nicht! auch hier werden alle zeilen auf einmal via count() ausgelesen und
in eine variable geladen. das würde wieder meinen speicher sprengen! ich
brauche eben die möglichkeit nur eine bestimmte anzahl von zeilen (zb.
100) irgendwo aus der mitte der datei in eine variable zu stecken!
Wieso? Das count() im Beispiel bezieht sich nur auf die einzelnen Spalten.
Du kannst prinzipiell nicht in der Mitte einer Datei einfach ein paar Zeilen
rauslesen, ohne nicht alles vorher gelesen zu haben. Was hindert Dich aber
daran, folgendes zu tun:
while ($data = fgetcsv(...)) {
/* ok, jetzt haben wir eine Zeile, die steht in $data */
fuege_in_datenbank_ein ($data);
}
Somit bearbeitest Du eine Zeile nach der anderen. Du brauchst natürlich
nicht fgetcsv zu nehmen, fgets zum einlesen einer Zeile funktioniert analog.
Wenn Du eine bestimmte Zeile auslesen willst, dann musst Du hochzählen:
$start = 200; /* startzeile */
$ende = 300; /* endzeile */
$ergebnis = array (); /* da kommt alles rein */
$zeile = 1;
while ($data = fgetcsv(...)) {
/* mal schauen */
if ($zeile >= $start && $zeile <= $ende) {
$ergebnis[] = $data;
}
if ($zeile > $ende) {
/* nachdem wir jetzt sowieso hinter dem Ende sind,
brauchen wir auch nichts mehr auszulesen
daher: stopp */
break;
}
$zeile++;
}
Dann stehen in $ergebnis die Zeile 200 - 300.
Jetzt nur mal vom Ansatz her...
Grüße,
Christian
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
-- Albert Einstein