badword filter

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

  • badword filter

    hi leute
    ich könnte mal eure hilfe gebrauchen, es geht um einen simplen wortfilter
    der soweit auch sauber arbeitet, aber es nützt mir nur sehr wenig wenn z.b. das wort arsch**** gefiltert wird, aber bei anderer schreibweise wie Arsch**** oder arschL*** nicht.

    wie bringe ich das dieser funktion hier bei ?
    PHP-Code:
    function wortfilter($text){
    $badword = array("arschloch""boese2""boese3");
    foreach(
    $badword as $boese){
    $text str_replace($boesestr_repeat("*"strlen($boese)), $text);
    }
    return 
    $text;

    zur belohnung gibt es diese funktion gratis
    PHP-Code:
    function br2nl($text){
    return 
    preg_replace('=<br */?>=i'"\n"$text);
    return 
    $text;} 


    Gruß bUTschy
    4cms.de

  • #2
    str-ireplace Hätte man drauf kommen können!

    Kommentar


    • #3
      wenn man weiß wonach man suchen muß ;-)

      danke...
      4cms.de

      Kommentar


      • #4
        na klasse, str_ireplace funktioniert nur mit php 5

        bin ich hier der einzige der sowas nicht weiß ?
        4cms.de

        Kommentar


        • #5
          Du hättest ggf. deine PHP Version auch nennen können...
          In diesem Falle würde ich das ganze mit RegExp machen. Schaue hierzu ins Man für preg_replace()
          PHP-Code:
          $badword = array("arschloch""boese2""boese3");
          foreach(
          $badword as $boese){
          $text preg_replace("/$boese/i","*",$text);
          }
          return 
          $text;

          Der Modifikator i sort dafür dass Gross-Kleinschreibung ignoriert wird. Das Prob ist, dass jedes Suchwort nur mit einem Stern ersetzt wird. Wenn du aber für jedes Zeichen einen Stern willst, dann musst du das irgendwie anpassen.
          No idea how

          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


          • #6
            mal so ganz abwegig

            strtolower
            strtoupper
            ucwords

            musst halt 3 ma replacen wennde kein php5 druff hast und mit preg_replace net klar kommst
            Die Milch bleibt ranzig!

            Kommentar


            • #7
              PHP-Code:
              $badword = array("arschloch""boese2""boese3");
              foreach(
              $badword as $boese){
              $text preg_replace("/$boese/ie","str_repeat('*',strlen($boese))",$text);
              }
              return 
              $text;

              Der Modifikator e akzeptiert auch php Fkt als Ersetzung. Habe das noch nie probiert, aber vllt ersetzt er nun ja jedes Zeichen durch einen Stern (hoff hoff)

              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


              • #8
                hi
                ich hab ja die möglichkeit zwischen php 4 und 5 zu switchen
                die umstellung soll etwar ne stunde dauern, mal gucken.

                dann werd ich ja sehen ob z.b.
                PHP-Code:
                function wortfilter($text){
                $badword = array("arschloch""boese2""boese3");
                foreach(
                $badword as $boese){

                if (
                function_exists("str_ireplace")) {
                $text str_ireplace($boesestr_repeat("*"strlen($boese)), $text);
                }
                 
                else {
                $text str_replace($boesestr_repeat("*"strlen($boese)), $text);
                }

                }
                return 
                $text;

                funktioniert
                4cms.de

                Kommentar


                • #9
                  hey @jahlives es geht..... ES GEEEEHT.....

                  dein schnipsel funktioniert auf anhieb, super..... Danke
                  4cms.de

                  Kommentar

                  Lädt...
                  X