Problem mit Zeile ändern in .txt

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

  • #31
    Danke, da schaue ich mal nach.

    Kommentar


    • #32
      Ich bin leider nicht so erfolgreich gewesen:
      Alle Zeilen heißen plötzlich so, wie die neue Zeile,
      die eingefügt werden soll:

      PHP-Code:
      //Neue Zeile
      $new_row "$id|$data1|$data2|$data3|$data4#newline \n";

      $oldfile $file;

      // Shared lock auf die Quelldatei
      $old fopen($oldfile"r");
      flock($old1) or die("Kann die Quelldatei $oldfile nicht locken.");

      // Exclusive lock auf die Zieldatei
      $new fopen($oldfile.".new""w");
      flock($new2) or die("Kann die Zieldatei $newfile nicht locken.");

      while(!
      feof($old))
      {
        
      $lines explode("#newline \n"fgets($old1024));
        foreach(
      $lines as $line)
        {
          
      $arr explode("|"$line);
          
          if(
      $arr[0] == $_POST["id"])
            continue;  
      // Zeile auslassen
          
          
      fputs($new,$new_row);
        }
      }

      fclose($old); // Gibt das Lock automatisch auf

      // Alte Datei wegwerfen.
      unlink($oldfile);

      // Neue Datei umbenennen.
      // (In Windows müssen das rename() und das fclose($new)
      //  vertauscht werden, da es nicht möglich ist, in Windows
      //  eine offene Datei umzubenennen.
      rename($oldfile.".new"$oldfile);

      // Neue Datei schließen und dabei Lock aufgeben.
      fclose($new);

      echo 
      "Der Eintrag mit der ID ".$_POST["id"]." ist erfolgreich geändert
      worden :)
      <br><br><input type=\"button\" onClick=\"window.location.href='?validCode=
      $validCode'\"
      value=\"zur&uuml;ck\">"

      Zuletzt geändert von kerbstone; 02.05.2007, 19:56.

      Kommentar


      • #33
        du rätst bloß wieder herum. willst du es nicht direkt aufgeben und jemanden für den job bezahlen, der das kann?

        wozu mit "foreach($lines as $line)" alle spalten durchgehen - du erwartest die id doch nur in einer bestimmten?

        Kommentar


        • #34
          Schade, dass dieses Forum nun auch nur noch kommerzorientiert ist, echt schade

          Kommentar


          • #35
            bei lernresistenen leider einziger ausweg

            Kommentar


            • #36
              Original geschrieben von kerbstone
              Schade, dass dieses Forum nun auch nur noch kommerzorientiert ist, echt schade
              Wenn manche Frager sich beim "programmieren" nicht mal halbwegs "intelligenzorientiert" verhalten können ...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #37
                Von denen die hier posten verdient daran wohl keiner was ...
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


                • #38
                  Gut, dann setze ich jetzt mal anders an und
                  versuche meinen Verstand zu benutzen:

                  Ich habe ja die Möglichkeit eine Textdatei
                  komplett mittles read() auszulesen.
                  Angenommen ich bekomme eine ID
                  über $HTTP_GET_VARS kann ich dann
                  mittels javascript oder ähnlichem sagen,
                  scrolle zu zeile x wo x gleich x ist?
                  Vom Prinzip her soll es wie ein Anker sein
                  wie in HTML <a name="x">x</a>.

                  Kommentar


                  • #39
                    $HTTP_GET_VARS
                    $_GET !
                    mittels javascript oder ähnlichem sagen,
                    scrolle zu zeile x wo x gleich x ist?
                    Also doch nicht mehr PHP sondern Javascript? Nimmst du file, packst das in eine Schleife und gibts in jeder Zeile sowas wie '<a name="' . $i . '">' . $fileArray [ $i ] . '</a>. Den Rest machst du jetzt mal selber.
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #40
                      Vom Prinzip her soll es wie ein Anker sein wie in HTML <a name="x">x</a>.
                      überlege noch mal: wenn der benutzer auf einen link klickt, sendet der browser die anfrage an den server. und nun bekommt dein script: foo.php?zeile=42.

                      was soll er jetzt machen - ein ganzes dokument zurückgeben? oder nur einen teil? oder alles schön mit html verpacken? (dann ließe sich mit js irgendwohin vorscrollen).

                      Kommentar


                      • #41
                        Das Error Reporting voll aufgedreht ? Kennst du file() --> liest eine Datei komplett Zeile für Zeile ein und gibt ein Array zurück, wo jedes Element einer Zeile der Datei entspricht. Dieses Array mittels foreach durchlaufen. Wieso überhaupt exploden ? Du willst ja jene Zeile ersetzen, die der übergebenen id entspricht. Also ich würde da bei jeder Zeile einfach die ersten Zeichen (Zahlen) anschauen und mit deine ID vergleichen.
                        Und was du mit dem willst erklär mir bitte mal
                        PHP-Code:
                        if($arr[0] == $_POST["id"]) continue;
                        fputs($new,$new_row); 
                        Für mich heisst nähmlich, dass alle Zeilen ersetzt werden sollen, die NICHT in der ID übereinstimmen --> vermute das ist nicht das was du willst...

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar

                        Lädt...
                        X