Wort in Textdatei finden ... ?

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

  • Wort in Textdatei finden ... ?

    Moin,
    ich beschäftige mich nun irgendwie seit 3 Stunden mit dem einen und selben Problem, wie ich ein Wort in einem Text finde. Dachte eigentlich ganz logisch aber überall was ich gefunden habe war in etwa aufgebaut wie mein Script.

    Aber schaut selber mal, vielleicht brauch ich einfach auch nur mal etwas Schalf

    PHP-Code:
    <?
    if(file_exists("test.txt")) 

       $datei = file(test.txt'); 

    if(in_array("test", $datei, true))
        echo "ja!";
    else
        echo "nein"; 
    }


    ?>
    Das komische ist wenn Test ganz zum Schluss in der Textdatei steht bekomme ich mein Ja!. Habe auch mal eine Schleife gebaut und bin jedes Wort einzeln durchlaufen und auch da bin ich zu keinem Ergebniss gekommen ...

    Naja ich geh jetzt ersteinmal Schlafen ...

  • #2
    preg_match() ?!

    schau mal hier:

    http://de.php.net/preg_match

    gruß
    Jan

    Kommentar


    • #3
      Ich bin mir meiner Antwort nicht sicher, abner prüft in_array nicht ein ARRAy und was du hast ist eine stink normal Variable ?

      Oder seh ich das falsch
      -------
      Jetzt Wissen testen
      mit dem Tagesquiz

      Kommentar


      • #4
        Hmmm das ist eine gute Frage, habe in den meisten Foren diese Lösung gefunden.

        Meine war eher

        $datei = fopen("test.txt","r");
        $buffer = "";
        while (!feof($datei))
        {
        $buffer .= fgets($datei, 4096);
        }

        $bla = explode(' ',$buffer);
        if(in_array("test", $bla, true))
        echo "ja!";
        else
        echo "nein";

        }

        Habe auch mal getestet das ganze in die while schleife zu packen aber auch nichts. Naja ich werde jetzt mal brav zur arbeit gehen und heute abend nach 19 Uhr weiterschauen, oder jemand hat eine Lösung ?

        Kommentar


        • #5
          dan fehlt bei dir aber das explode -- das erstellt den array aus deinem Textdatei-String
          -------
          Jetzt Wissen testen
          mit dem Tagesquiz

          Kommentar


          • #6
            Huhu,
            von der arbeit lässt es sich noch besser surfen

            Also bei meinem Script steht

            $bla = explode(' ',$buffer);

            sollte denke ich reichen ....

            Das Problem ist vielleicht zu simpel das ich die Lösung nicht finde.

            Kommentar


            • #7
              Und, Problem gelöst?
              Wie sieht denn Deine Datei eigentlich aus? Jedes Wort in eienr neuen zeile?
              Dann sollte das eigentlich so gehen, allerdings würde ich genrell mal beigehen und alles auf uppercase, oder auf lowercase setzen, bevor du was suchst.

              Kommentar


              • #8
                Nein, bin leider noch auf der arbeit und komme erst heute abend dazu weiterzumachen. Ich dachte eigentlich das es kein großes Problem sein wird so eine blöde Textdatei zu durchsuchen, daher bin ich auch so erstaunt das ich nicht weiterkomme.

                uppercase und lowercase sagt mir nichts, aber ich google nachher mal

                Kommentar


                • #9
                  file() liefert dir ein Array der Zeilen, nicht der Wörter. in_array() würde 'test' also nur finden, wenn es allein in einer Zeile in der Datei steht. Das willst du doch nicht oder?

                  Du könntest nach file() die Funktion preg_grep() anwenden. Aber ich halte es für sinnvoller, die Datei als String zu lesen und dann mit strpos() oder preg_match() zu suchen.

                  PHP-Code:
                  <?php

                  $search 
                  'test';
                  $text file_get_contents('datei.txt');
                  $pos strpos($text$search);
                  if (!
                  $pos) die('nichts gefunden');
                  $len strlen($search);
                  echo 
                  substr($text0$pos-1) . 
                       
                  '<b>' substr($text$pos$len) . '</b>' .
                       
                  substr($text$pos+$len);

                  ?>

                  Kommentar


                  • #10
                    @onemorenerd
                    Ok, wieder um etwas schlauer geworden und klappt mit deiner Lösung wunderbar!


                    Noch etwas das Script umbauen und ich kann es verwenden

                    Kommentar

                    Lädt...
                    X