kostenloser Webspace werbefrei: lima-city


Große CSV Dateien schrittweise auslesen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gamesfun

    gamesfun hat kostenlosen Webspace.

    Hallo

    ich habe eine CSV-Datei, die merhrere MB groß ist und über 5000 Zeilen besitzt.
    Diese kann ich nicht auf einmal auslesen,
    weil a) es eine Datenmengen-Begrenzung gibt oder
    weil b) die Script-Laufzeit nicht ausreicht.

    wie kann ich eine so große Liste (Dateí) schrittweise auslesen?
    z.B.so .... lese Zeile 1 is Zeile 500 ... dann lese Zeile 501 bis 1000 ... dann 1001 bis 1500 ... usw.

    bitte um Hilfe. Danke!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Naja, eigentlich ganz einfach. Du startest eine Session, liest 500 Zeilen ab Zeile 1 ein, dann schreibst du 500 in die Session und machst nen header redirect zu deinem Script (also einfach neu aufrufen), da liest du dann 500 Zeilen ab 501 aus, usw.
  4. Autor dieses Themas

    gamesfun

    gamesfun hat kostenlosen Webspace.

    nikic schrieb:
    ... da liest du dann 500 Zeilen ab 501 aus, usw.


    ja, genau,
    nur wie mache ich das, den "Zeiger" zum Lesen direkt an die Stelle zu bringen, wo es weiter geht ... ?!?

    ich kann ja nicht bei jedem Aufruf (nach redirect) wieder die ganze Datei lesen bis zum "weiter" Punkt
    so würde wieder die Laufzeit nicht ausreichen ....


    Danke!
  5. Hm, daran habe ich gar nicht gedacht :D Arbeite nie mit Files. Aber es gibt da ne Funktion, wenn ich mich recht erinnere fseek, musst du man im Manual sehen... Ich frage mich nur, ob die überhaupt effektiv genug ist und nicht bei größeren Files auch das memory_limit erreicht.

    Ich glaube es wäre einfacher das limit zu erhöhen, wenn ich mich nicht irre, dann geht das sogar mit einem ini_set. Zumindest hats bei mir einmal geklappt, ich wieß nicht obs überall klappt.
  6. Autor dieses Themas

    gamesfun

    gamesfun hat kostenlosen Webspace.

    Danke,
    werde ich mal versuchen mit ftell (Zeiger-Position ermitteln) und fseek (Zeiger setzen)

    hab auch schon bischen gesucht, aber leider noch kein passendes Beispiel gefunden

    Schleifen bis Zeiger auf Ende der Datei (Ende = filesize oder size_of ??)





  7. wenns na der scriptlaufzeit liegt, kannste die über die variable "max_execution_time" regeln, kann dann aber sein, dass dein script dann evtl. sehr lange läuft...
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!