Schimpfwortfilter: große und kleine buchstaben gleich behandeln
Mellanie
- php
0 Christian Seiler0 Thomas Luethi0 Christian Seiler0 Mellanie
0 Mellanie
0 Mellanie
0 MudGuard0 Tom
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
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
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
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
Hallo,
$text = preg_replace ('/'.preg_quote ($key, '/').'/i', $value, $text);
Vielen Dank, funktioniert.
So und jetzt geh ich ins Bett ;-)
mfg Mellanie
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
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
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
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