Array (aus Datei) mit String vergleichen

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

  • Array (aus Datei) mit String vergleichen

    Hallo,

    Ich bin noch ein ziemlicher Rookie was PHP betrifft und hoffe dass ich hier nicht gleich wegen meiner Frage zerrissen werde.

    Problembeschreibung:
    In einer For Schleife werden bestimmte Begriffe ausgeben. Für jeden dieser Begriffe ist jetzt zu prüfen ob er in einer BAD-Word Liste steht, die ich per Hand pflegen würde. Um einfach einige Wörter ausschließen zu können. Diese Datei nenne ich mal words.txt

    Wie kann ich da am geschicktesten vorgehen ?

    Ich habe jetzt herrausgefunden wie ich die Wörter erstmal aus der Datei auslese.
    Jetzt bekomme ich aber die Begriffe die der User eingibt als String und will wissen ob er in dem Array vorkommt.

    Code:
    $words=array(); 
    
    $Datei = fopen("words.txt", "r");
    if($Datei)
    {
      while(!feof($Datei))
      {
        $Zeile = fgets($Datei, 100);
        array_push($words,$zeile);
    
        echo $Zeile . "<br>";
      }
      fclose($Datei);
    } else echo "Die angegebene Datei konnte nicht gefunden werden!";
    Da ich noch Anfänger bin, frag ich mich jetzt ob ich total auf dem Holzweg bin oder wie ich das besser lösen kann.

    Die Profis machen das wahrscheinlich in einem 5 Zeiler :-)

    Ich bitte daher um eure Hilfe !!!

    Gruß Thomas
    Spambot Falle
    Wem das Wasser bis zum Hals steht, sollte nicht den Kopf hängen lassen.

  • #2
    einmal hier und einmal da

    einzeiler *strike*
    Zuletzt geändert von Skaschy; 26.04.2005, 12:57.

    Kommentar


    • #3
      Original geschrieben von Skaschy
      einmal hier und einmal da
      Tip: Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.
      Zitat aus dem Manual. Und wofür du hier str_replace() benutzen willst....

      Außerdem würde ich explode("\n", file("datei")); vorziehen anstatt so einer Schleife. Geht denke ich schneller.

      Um zu checken ob die dann in dem Array vorkommen, benutzt du z.B. in_array
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar


      • #4
        PHP-Code:
        $words=array(); 
        $words explode("\n"file("words.txt")); 

        if (!
        in_array ("xxx"$words)) {
           echo 
        "Wort nicht in der Liste";

        Zeile 2 Liest mir dann die ganze Datei gleich in ein Array ein, oder ?
        Müsste es so funktionieren ? :-)
        Spambot Falle
        Wem das Wasser bis zum Hals steht, sollte nicht den Kopf hängen lassen.

        Kommentar


        • #5
          array file ( string filename [, int use_include_path] )
          wozu dann explode?

          Kommentar

          Lädt...
          X