Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 15-03-2013, 13:15
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von Melewo Beitrag anzeigen
...

Wenn ich die Zeilen vorher zähle, erhöht sich die die Laufzeit auf 0.2 bis 0.3 Sekunden. Von unset musste ich bei einer Schleife Gebrauch machen, da memory size überschritten, bei zwei hätte ich drauf verzichten können.

PHP-Code:
$abz 1;
$csv "testpost2.csv";

$zeilen  file($csv);
$abzeile count($zeilen) - 120;
unset (
$zeilen);

if ((
$handle fopen($csv"r")) !== false) {

    while ((
fgets($handle4096)) !== false) {

        
$abz++;
        if (
$abz $abzeile) { ... 
Ähemm ..., dir ist schon klar, dass file() die gesamte Datei einliest und ein Array von Zeilen daraus bastelt? In dem Moment hast du die komplette Tabelle im Hauptspeicher. Dann kannst du entweder rückwärts über das Array iterieren (geht allerdings nicht mit foreach()) oder vorher das Array umkehren. Aber das nochmalige Einlesen jeder Zeile mit fgets()/fgetcsv()/e.t.c. ist in dem Moment unnötig. Die Datensätze sind ja schon alle eingelesen worden. Sie müssen nur noch dekodiert werden.
Mit Zitat antworten