Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert in *.txt suchen und in neue *.txt schreiben - Zeile danach löschen.

Einklappen

Neue Werbung 2019

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

  • Wert in *.txt suchen und in neue *.txt schreiben - Zeile danach löschen.

    Hallo zusammen,

    ich habe leider noch nichts passendes im Forum gefunden. Daher ein neues Thema.

    Ich bin auf der Suche nach einem PHP-Skript, der einen gewissen Wert in einer *.txt Datei sucht und die gefundene Zeile anschließend löscht.
    Der gefundene Wert soll aber in eine neue *.txt geschrieben werden.

    über MySQL - Datenbank ist dies für mich kein Thema. Leider habe ich für meine Anwendung keine Datenbank zur Verfügung und hoffe dies mit einem PHP-Skript lösen zu können.

    Ich habe soweit schon einen Skript, der mit einer Ausnahme das macht, was er machen soll.


    Folgendes Problem: Wenn der Skript erneut aufgerufen wird, schreibt er den Inhalt erneut in die "Auftrag_angenommen.txt"
    Ich möchte also Abfragen, ob der Inhalt bereits exisitiert, wenn ja, soll nichts unternommen werden.

    Ich finde den Fehler leider nicht und hoffe, Ihr könnt mir helfen.

    PHP-Code:
    <?php

    $Inhalt 
    $_SESSION["OID"];  //Inhalt wäre z.B.: 13200

    $array file("Auftrag_angenommen.txt");
    if (
    array_search($Inhalt$array) == false) {

    $Fh fopen('Auftrag_angenommen.txt'"a+");
      if (
    fwrite($Fh$Inhalt"\r\n"))
      
    fclose($Fh);

    }

    $file=file("Auftraege.txt");
        
    $a=0;
        foreach(
    $file as $zeile)
        {
        
    $zeile_explode=explode($Inhalt,$zeile);
            if(
    $zeile_explode[0]==$id)
            {
            unset(
    $file[$a]);
            
    $newinhalt=fopen("Auftraege.txt","w");
            
    fputs($newinhalt,implode("",$file));
            
    fclose($newinhalt);
            }
        
    $a++;
        }

    ?>

  • #2
    über MySQL - Datenbank ist dies für mich kein Thema. Leider habe ich für meine Anwendung keine Datenbank zur Verfügung und hoffe dies mit einem PHP-Skript lösen zu können.
    SQLite via PDO eine Option? Ist bei PHP normalerweise von der Stange dabei und auch nur eine einzelne Datei - wie deine Textdatei.

    Kommentar


    • #3
      Danke für die Schnelle Antwort.

      Nein, leider ist das keine Option, daran habe ich auch schon gedacht.
      Das "Sub-System" unterstützt dieses leider nicht.. somit bin ich auf TXT als kleinsten gemeinsamen Nenner angewiesen

      Kommentar


      • #4
        The SQLite3 extension is enabled by default as of PHP 5.3.0
        https://www.php.net/manual/en/sqlite3.installation.php

        Wer kompiliert sein PHP ohne diese Option?
        Schau lieber noch mal nach.

        Kommentar


        • #5
          Wie oben schon geschrieben, ist dies leider keine Option für mich...Ich muss mich auf diesen Skript beschränken.

          Kommentar


          • #6
            Das sieht mir nach einem Klassiker aus: die Zeilenumbrüche die file() mitliefert hast du nicht berücksichtigt - FILE_IGNORE_NEW_LINES ist dein Freund (siehe Handbuch). Ich würde allerdings auch eine SQLite-Datenbank vorziehen ...

            Kommentar


            • #7
              ach her je.... FILE_IGNORE_NEW_LINES ist mir noch fremd.
              Danke für den Tip. aber an welcher stelle baue ich den in meinem Skript dann ein? :-/

              Kommentar


              • #8
                Schaue ins Handbuch!

                Kommentar


                • #9
                  Komme hier trotzdem nicht weiter.
                  Aber egal.... wenn ich nicht durchs Wasser gehen kann, baue ich halt eine Brücke und laufe drüber.

                  Hätte mich gefreut wenn mir jemand Schwimmflügel gibt... naja!

                  Danke trotzdem für die Anworten.

                  Kommentar


                  • #10
                    Wir zeigen dir wie man fischt. Angeln musst du.
                    Die Funktion wird doch im Handbuch beschrieben, und Beispiele dazu gibt es auch, was brauchst du noch?

                    Kommentar


                    • #11
                      Zitat von Martsch84 Beitrag anzeigen
                      Ich habe soweit schon einen Skript, der mit einer Ausnahme das macht, was er machen soll.
                      Das macht es nur, weil sich an dieser Stelle

                      PHP-Code:
                          $zeile_explode=explode($Inhalt,$zeile);
                              if(
                      $zeile_explode[0]==$id
                      gleich mehrere Fehler ($id ist zum Beispiel nicht definiert) so in Relation stehen das per Zufall das Richtige rauskommt. Schau im Manual nach wie explode arbeitet und betreibe Debugging. Hilfe findest du in der Wissenssammlung.

                      Kommentar


                      • #12
                        Danke dir jspit
                        habe den Fehler durch dich gefunden!

                        Kommentar

                        Lädt...
                        X