Ankündigung

Einklappen
Keine Ankündigung bisher.

wie verknuepfe ich bei preg_match mehrer Woerter?

Einklappen

Neue Werbung 2019

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

  • wie verknuepfe ich bei preg_match mehrer Woerter?

    Hallo Leute!

    Ich will einige Wörter (2-5) in einem Text finden (badwords).

    Der untere Code funzzt sogar.
    Nur das mit der normalen Verknüpfung habe ich nicht hinbekommen.
    Ich habe schon kräftig gesucht und ausprobiert, aber außer dem unten habe ich nichts funktionierendes Erschaffen
    Wahrscheinlich ist das soooo einfach.

    Ich möchte z.B. auch gucken, ob 'Content' vor kommt.

    Code:
    if (preg_match('[MIME]', "echo $text;"))
    Guten Abend noch........

  • #2
    Hallo ...

    PHP-Code:
    <?php

    if (preg_match('/(wort1|wort2|wort3)/i','Hier wird nach bösen Wörtern gesucht, Wort3 ist ein solches ...'))    {

            echo 
    'böses Wort gefunden ...';

        }

    ?>
    ... meinst du sowas?

    Kommentar


    • #3
      suchst du reinen klartext (ohne platzhalter), nimm die stringfunktionen (strstr, strpos, bzw. str_replace).

      Kommentar


      • #4
        Danke es funktioniert.

        Der Schreiber soll nicht wissen welches Wort böse ist
        Ist wegen Autoeinträge

        Code:
        if (preg_match('/(MIME|Contend|message)/i', "echo $text;"))
        {
        echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.html\">";
        exit();
        }
        else 
        {
        Für Hunde www.koeter.de

        Antonius

        Kommentar


        • #5
          PHP-Code:
          <?php
          $badwords 
          = array('wort1''wort2''wort3');
          for (
          $i 0$max count($badwords); $i $max$i++) {
            if (
          strpos($text$badwords[$i]) !== false) { // eine Klammer zuviel
              // badword detected
              
          header('Location: aussperren.php');
              exit;
            }
          }
          ?>
          Das mal ohne RegExp. Denn wie gesagt, wenn es mit halbwegs kleinem
          Aufwand vermeidbar ist, sollte man darauf verzichten. Außerdem lernt man
          gleich was über Stringverarbeitung und der $badwords-Array ist schön
          übersichtlich, auch bei mehreren Badwords.

          Kommentar


          • #6
            Moin!

            Danke

            aber.......

            Habe leider in der for - Zeile ein Phasen error
            und schon ca. 15 mail-scripte mit der ersten
            Version geändert.

            antonius

            Kommentar


            • #7
              Habs korrigiert.
              Du solltest die Badword-Detection aber zentralisieren, zumindest in einer Datei.
              Sonst musst du ja beim Hinzufügen eines neuen Badwords (5 sind ja nicht wirklich viele) mindestens 15 mail-Scripte erneut anpassen

              http://us2.php.net/include/

              Kommentar


              • #8
                Hallo!


                Wie bringe ich da @mueller.de in die Prüfliste ein?
                So wirds jedenfalls nicht genommen

                Code:
                # Mailtext formatieren...(voerher werden die badwords eingegeben.
                
                if (preg_match('/(MIME|Content|@mueller.de|message)/i', "echo $email;"))
                {
                echo "<meta http-equiv=\"refresh\" content=\"0;URL=badwords.html\">";
                exit();
                }
                
                else 
                {

                Tschüss Antonius

                Kommentar


                • #9
                  Den Punkt musst du auf jedenfall escapen, sonst ist es ungenau.
                  Ob man das @ bei RegExp auch escapen muss weiß ich gerade nicht, schaden tut es aber nicht.

                  Kommentar


                  • #10
                    |@mueller.de
                    Beim Punkt bitte ein \ davor: \. ...

                    Kommentar


                    • #11
                      Zitat von Zergling
                      Ob man das @ bei RegExp auch escapen muss weiß ich gerade nicht, schaden tut es aber nicht.
                      a. nur dann, wenn es ein Delimiter ist.
                      b. einfach mal das angucken, schadet weniger:
                      http://de.php.net/preg_quote

                      Kommentar

                      Lädt...
                      X