dateien erzeugen in schleife - fehler

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

  • dateien erzeugen in schleife - fehler

    hallo,

    weshalb klappt das folgende kleine script nicht?

    <?php
    $inhalt = file ("inhalt.txt");

    for ($i=0;$i<count($inhalt);$i++){

    $vorname = ltrim($inhalt[$i]);

    $datei_anlegen = fopen("$vorname" . ".txt", "w");

    $einfuegen = fwrite ($datei_anlegen,$vorname);

    $ende = fclose($datei_anlegen);

    }
    ?>
    es wird eine textdatei mit vornamen ausgelesen und für jeden vornamen eine eigene datei erstellt. das problem: es erscheinen die fehlermeldungen...

    Warning: fopen("mirko.txt", "w") - Invalid argument in D:\Webmaster\sonstige\inhalt_generate.php on line 8

    Warning: fwrite(): supplied argument is not a valid File-Handle resource in D:\Webmaster\sonstige\inhalt_generate.php on line 10

    Warning: fclose(): supplied argument is not a valid File-Handle resource in D:\Webmaster\sonstige\inhalt_generate.php on line 12
    ... das ganze dann für alle namen bis auf den letzten. dieser wird nämlich korrekt in einer erzeugten datei gespeichert.


    wo liegt der fehler?

  • #2
    *VERSCHIEB* nach php
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Müsste die Zeile nicht so heißen?
      PHP-Code:
      $datei_anlegen fopen($vorname.".txt""w"); 

      Kommentar


      • #4
        nein, an der syntax des codes liegt es nicht. der jeweils letzte eintrag in der datei mit den inhalten wird ja dazu verwendet, eine datei daraus zu erzeugen.

        es liegt vielmehr ein (logischer) denkfehler bei der verwendung der schleife in verbindung mit dem handle.

        Kommentar


        • #5
          mach mal aus dem

          $vorname = ltrim($inhalt[$i]);

          ein trim()

          bei $x=file(...) müßtest du glaube ich
          an jedem Zeilenende ein \0 drin haben
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            Ergänzung zu TBT:
            Anmerkung: Jede Zeile in dem resultierenden Array enthält das Zeilenende ('\0'), weshalb Sie trim() verwenden müssen, falls Sie dieses Zeichen nicht vorhanden sein soll.
            steht beim Manual zur Erläuterung der Funktion file()

            Kommentar


            • #7
              vielen dank, jetzt klappts, musste nur trim verwenden statt ltrim!

              Kommentar

              Lädt...
              X