Mellanie: Schimpfwortfilter: große und kleine buchstaben gleich behandeln

Hallo Leute,

ich hab hier eine kleine nette Funktion, die einen String nach Schimpfwörtern durchsucht.

function bad_word($text){

$bad_words = array(
"geil" => "genial",
"fuck" => ".....",
);

foreach ($bad_words AS $key => $value){
        $text = str_replace($key, $value, $text);
    }
    return $text;
}

Es wäre toll, wenn es eine einfache Möglichkeit gäbe, mit "geil" => "genial", auch die Variante GEIL oder Geil herauszufiltern. Also müssten Quasi alle Buchstaben als Kleinbuchstaben behandelt werden.

$text = strtolower("Geiz ist Geil");
gibt ja den string geiz ist geil aus.

Aber leider werden dadurch auch alle anderen Wörter kleingeschrieben, obwohl in diesem Fall Geiz nicht betroffen ist und auch nicht verändert werden soll.

Ich hoffe ihr versteht was ich sagen will.

Fällt euch was ein?

mfg Mellanie

  1. Hallo Mellanie,

    ich hab hier eine kleine nette Funktion, die einen String nach Schimpfwörtern durchsucht.

    Beispiele:

    | g*il, f*ck you!

    Du siehst: es bringt nicht viel...

    Es wäre toll, wenn es eine einfache Möglichkeit gäbe, mit "geil" => "genial", auch die Variante GEIL oder Geil herauszufiltern. Also müssten Quasi alle Buchstaben als Kleinbuchstaben behandelt werden.

    Nimm str_ireplace() statt str_replace().

    Viele Grüße,
    Christian

    1. Hallo,

      Nimm str_ireplace() statt str_replace().

      Es waere nett gewesen, im gleichen Atemzug zu erwaehnen,
      dass diese tolle Funktion erst in PHP 5 zur Verfuegung stehen wird...

      So verstehe ich jedenfalls den Hinweis "(PHP 5 CVS only)" auf
      http://www.php.net/manual/en/function.str-ireplace.php

      Gruesse,

      Thomas
        der nichts von Schimpfwort-Zensur haelt

      1. Hallo Thomas,

        Nimm str_ireplace() statt str_replace().

        Es waere nett gewesen, im gleichen Atemzug zu erwaehnen,
        dass diese tolle Funktion erst in PHP 5 zur Verfuegung stehen wird...

        Echt? Das wusste ich nicht...

        Ok, dann wäre wohl ein

        $text = preg_replace ('/'.preg_quote ($key, '/').'/i', $value, $text);

        besser...

        Viele Grüße,
        Christian

        1. Hallo,

          $text = preg_replace ('/'.preg_quote ($key, '/').'/i', $value, $text);

          Vielen Dank, funktioniert.

          So und jetzt geh ich ins Bett ;-)

          mfg Mellanie

      2. Hallo Thomas,

        Nimm str_ireplace() statt str_replace().

        Es waere nett gewesen, im gleichen Atemzug zu erwaehnen,
        dass diese tolle Funktion erst in PHP 5 zur Verfuegung stehen wird...

        So verstehe ich jedenfalls den Hinweis "(PHP 5 CVS only)" auf
        http://www.php.net/manual/en/function.str-ireplace.php

        naja, hab ich mitlerweile auch bemerkt ;-)

        der nichts von Schimpfwort-Zensur haelt

        Hast du trotzdem ne Idee?

        mfg Mellanie

    2. Hi Christian,

      Nimm str_ireplace() statt str_replace().

      Call to undefined function: str_ireplace()

      Scheint auf meinem Freenet-Server wohl nicht installiert zu sein (PHP 5 CVS only). Kann man das auch irgendiwe anderst machen?

      mfg Mellanie

  2. Hi,

    ich hab hier eine kleine nette Funktion, die einen String nach Schimpfwörtern durchsucht.

    Es gibt zu viele Varianten, ein

    BBBB    AAA   DDDD   W   W   OOO   RRRR   DDDD
    B   B  A   A  D   D  W   W  O   O  R   R  D   D
    BBBB   AAAAA  D   D  W W W  O   O  RRRR   D   D
    B   B  A   A  D   D  WW WW  O   O  R  R   D   D
    BBBB   A   A  DDDD   W   W   OOO   R   R  DDDD

    in menschenlesbarer Version trotzdem durchzukriegen, als daß sich der Aufwand lohnen würde...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
  3. Hello,

    hier gibt es schon eine Musterlösung für ein "Fantasiewörtebuch", dass Thomas Luethi und ich mal für einen Fragesteller durchdiskutiert haben.

    Musst Du mal unter "Fantasie" "replace" "tom" suchen...

    Grüße

    Tom