Textdatei ändern

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

  • Textdatei ändern

    Hallo,

    Ich habe folgendes Script, damit ich Einträge in einer Textdatei ändern kann.

    In der testausgabe der geänderten Zeile ist alles ok nur beim Befehl "str_replace()" sond alle daten leer.

    Muss irgendwo einen Fehler haben, denn ich nicht finde?

    PHP-Code:
     //Einstellungen 
    $db $pagename
    $data file($db);  //Inhalt der Datei
    $anzahl count($data); 
    $nr $id;//Die Zeile die geändert werden soll 
    // Daten die erstetzt werden sollen 
    $rep_neu $nr." | ".$date." | ".$art." | ".$text." | ".$datum." | ".$host;

    echo 
    $rep_neu."<br><br>";  //Testausgabe

    //Lesen der Daten 

    for ($x=0;$x<$anzahl;$x++) 
        { 
        
    $rep_old $data[$nr]; 
        
    $data[$nr] = str_replace($rep_old $rep_neu $data[$nr] ); 
        echo 
    $data[$nr]."<br>";    //<-- hier ist plötzlich alles leer
        


    //Teil neu in die Txt schreiben 

    $fp fopen($db,"w"); 
    for(
    $i 0;$i<$anzahl;$i++) 
        { 
        
    $schreibe[$i] = trim($data[$i]); 
        
    fwrite($fp,$schreibe[$i]."\n",1024); 
        } 
    fclose($fp); 
    Wo habe ich hier den Fehler?

    Bitte um Hilfe

    Georg

  • #2
    for ($nr=0;$nr<$anzahl;$nr++)

    Du solltest in der Schleife ruhig deine Laufvariable benutzen ...
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Re: Textdatei ändern

      wozu denn überhaupt die schleife?

      PHP-Code:
      $nr $id;//Die Zeile die geändert werden soll 
      das klingt doch so, als ob nur eine einzige "zeile" in dem array geändert werden soll?
      also wozu bitte das array in einer schleife durchlaufen, und bei jedem durchlauf die selbe zeile ändern? das ist unsinnig.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Funzt immer noch nicht

        Hallo, habe mich jetzt wieder mit dem Code unterhalten, bin auf folgendes draufgekommen.

        die Funktion str_replace tut nichts, weil die Variable $rep_old leer ist.

        Sobald ich die Zählvariable $nr testweise mit einem fixen Eintrag versehe, dann funkt das Script.
        Die Variaiable $nr bekommt aber einen Wert.
        Sobald ich ich der Variablen $nr den Wert ein Formularfeld übergebe, funzt das Script nicht mehr.

        Ich begreife das nicht.

        Bitte um Hilfe!

        oder wisst ihr ein Script das funktioniert.

        Hier nochmals das mein script:

        PHP-Code:
        $host $HTTP_SERVER_VARS["REMOTE_ADDR"];
        $datum date("d.m.Y - H:i");

        if (isset (
        $_POST[submit]))
        {
        $nr $_POST['id'];
        $date $_POST['date'];
        $art $_POST['art'];
        $text $_POST['text'];

        $text str_replace("<iframe","&ltimg src=",$text);
        $text str_replace("<img src=","&lt;img src=",$text);
        $text str_replace("<i>","",$text);
        $text str_replace("<meta","&ltmeta",$text);
        $text str_replace("<","&lt;",$text);
        $text str_replace(">","&gt;",$text);
        $text str_replace("|","&brvbar;",$text);
        $text str_replace("\n","<br>",$text);

            
        //-->Einstellungen 
        $db "daten.txt"
        $inhalt file($db); 
        $anzahl count($inhalt); 
        //$nr = 3;//Die Zeile die geändert werden soll 


        //-->Neuen Daten 
        echo "Dieser Datensatz wird geändert: ".$nr."<br>";
        $rep_neu "$nr | $date | $art | $text$datum | $host"

        //-->Herauslesen der Daten 


        for ($x=0;$x<$anzahl;$x++) 
            { 
            
        $rep_old "$inhalt[$nr]"
            echo 
        "&nbsp;&nbsp;Inhalt alt: ".$rep_old."<br>";
            echo 
        "&nbsp;Inhalt neu: ".$rep_neu."<br>";
            
        $inhalt[$nr] = str_replace("$rep_old","$rep_neu",$inhalt[$nr]); 
            echo 
        "[Array Nr $x] -->  [ ".$inhalt[$x]." ]";  //Für die Überprüfung 
            
        echo "<br>"
            } 

        //-->Teil neu in die Txt schreiben 

        $fp fopen($db,"w"); 
        for(
        $i 0;$i<$anzahl;$i++) 
            { 
            
        $schreibe[$i] = trim($inhalt[$i]); 
            
        fwrite($fp,$schreibe[$i]."\n",1024); 
            } 
        fclose($fp); 

        Kommentar

        Lädt...
        X