Problem mit fread

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit fread

    Mahlzeit zusammen!

    Folgendes Problem: Ich lese eine (ASCII-)Datei mittels fread ein...

    PHP-Code:
    $datei=fread("datanorm.001"3900000); 
    Anschließend verarbeite ich die Daten mit einem Skript zum Zippen von Dateien.

    Das Problem: Es kommt schonmal vor, daß die einzulesende Datei 5 oder 6 MB groß ist... sobald ich den Wert der Dateigröße bei fread allerdings über die 4 MB Marke setze, bricht mein Skript ohne irgendeine Fehlermeldung auszugeben ab.

    Hat einer von euch eine Idee woran das liegen kann bzw. was ich falsch mache???

    Gruß

    Fretchen

  • #2
    Re: Problem mit fread

    ich halte es für keine gute idee, so viel bytes auf einmal einzulesen.

    warum machst du das nicht in einer schleife, und liest jeweils 2.000 oder vllt. auch 5.000 bytes ein?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Frage: Wie kann ich das mit der Schleife realisieren???

      Evtl. so???

      PHP-Code:

      $file
      ="datanorm.001";
      $filehandle=fopen($file,"rb");
      while(!
      feof($filehandle))
      {
      $datei=$datei+fread($dateihandle2000000);

      Das Zip-Skript benötigt den gesamten Inhalt der Datei in einer Variable! Oder gibt es da einen besseren Weg um die Datei komplett einzulesen?

      Kommentar


      • #4
        HELP... et klappt nich...

        Sobald ich mehr als 4MB eingelesen habe bricht das Skript einfach so ab. Und das kuriose dabei: es gibt noch nicht mal ne Fehlermeldung...

        Gibt es bei fread irgendein Limit???

        Kommentar


        • #5
          Schau mal in die php.ini.
          Wie hoch ist bei Dir der Wert für memory_limit gesetzt?
          Code:
          ;;;;;;;;;;;;;;;;;;;
          ; Resource Limits ;
          ;;;;;;;;;;;;;;;;;;;
          
          max_execution_time = 30     ; Maximum execution time of each script, in seconds
          memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)

          Kommentar


          • #6
            Hallo hand!

            Also... die php.ini kann ich leider nicht direkt einsehen. Habe meine Seiten bei 1&1 (Puretec) (...bitte nicht schlagen) liegen.

            Laut phpinfo ist mein memory_limit bei 40M (sind das dann 40MB oder 4MB???)

            Gruß

            Fretchen

            Kommentar


            • #7
              nun, 40 sind 40 ( nach adam riese ). aber glauben kann ich das ned. i.d.r. sind es 8, wie bei @hand
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                Probier mal file()
                http://at2.php.net/manual/en/function.file.php

                Kommentar


                • #9
                  Hm... file funzt auch nicht.

                  Jetzt hab ich ein Problem...

                  Ich kann meinem Kunden ja schlecht von einer 12MB großen Datei nur knappe 4MB gezipt zum Download anbieten.

                  Naja... erst mal vielen Dank für eure Hilfe. Jetzt muß ich mal schauen, wie ich das Problem behoben bekomme.

                  Kommentar


                  • #10
                    Problem gelöst!

                    Über

                    PHP-Code:
                    $cmd="gzip datanorm.001";
                    system(EscapeShellCmd($cmd)); 
                    gehts ohne Probleme. Obwohl ich überhaupt keinen Shell-Zugang auf meinem Puretec-Paket hab... Komisch. :-D

                    Kommentar

                    Lädt...
                    X