PHP: Datei schreiben/lesen Problem!

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

  • PHP: Datei schreiben/lesen Problem!

    Hallo!

    Ich möchte gerne einen überlangen String (aus mehreren hundert/tausend Zeichen) in eine Textdatei schreiben. Problem hierbei ist, dass wenn ich einfach nur fwrite($fp, $string) mach, der String nicht komplett in die Datei geschrieben wird. Daher kam mir die Idee, den String in 100 Zeichen länge zu splitten, und Zeile für Zeile in die Datei zu schreiben. Hier habe ich wieder das Problem, dass ich den String nach dem einlesen nicht wieder zurück in einen langen String bekomm, sondern ständig nen Zeilenumbruch (\n) drin hab.

    Hat jemand von Euch vlt. nen Tip wie ich das ganze lösen kann?

    PHP-Code:
    $text str_split($text100);
    $fp fopen($file"w+/a+");
    $xcount count($text);
    for(
    $i 0$i $xcount$i++) {
        
    fwrite($fp$text[$i]);
    }
    fclose($fp); 
    PHP-Code:
    $fp fopen($_FILES['text']['tmp_name'], "r");
    $text = array();
    while (!
    feof($fp)) {
        
    text[] = fgets($fp1024);
    }
    echo 
    strlen(join(""$text)); 
    Danke!

  • #2
    was versuchst du mit
    PHP-Code:
    $fp fopen($file"w+/a+"); 
    zu bezwecken? Du musst dich entscheiden, ob du deinen Filepointer ans Ende oder an den Anfang packen willst.
    folgender Code schreibt "abcde" 100000 mal in eine Datei mit "ende" am ende und es ist alles drin
    PHP-Code:
    $handle fopen("test.txt""w");
    fwrite($handlestr_repeat("abcde"100000)."ende");
    fclose($handle); 

    Kommentar


    • #3
      Du könntest das ganze in einer Schleife laufen lassen und pro Durchlauf 1024 Zeichen in die Datei schreiben. Die Stelle im String, die geschrieben werden soll, kannst du mit substr() ermitteln.

      Kommentar


      • #4
        So, problem hat sich erledigt. Fehler lag beim lesen, mit filesize($file) klappt nu alles...

        Kommentar


        • #5
          Mit
          PHP-Code:
          $text file_get_contents($_FILES['text']['tmp_name']); 
          ginge es noch einfacher. Und ich wüsste nicht, warum die Daten mit fwrite() nicht vollständig geschrieben werden sollten. Aber auch da gäbe es noch die Funktion file_put_contents()
          Zuletzt geändert von H2O; 24.04.2008, 08:45.
          Gruss
          H2O

          Kommentar

          Lädt...
          X