不吉なコメントがたくさん寄せられることは承知していますが、何をしても理解できません。ここに機能があります
$filter = mysql_query("SELECT * FROM `filter`");
$fil = mysql_fetch_array($filter);
$bad = $fil['filter'];
$bword = explode(",", $bad);
function wordfilter($output,$bword){
$badWords = $bword;
$matchFound = preg_match_all("/(" . implode($badWords,"|") . ")/i",$output,$matches);
if ($matchFound) {
$words = array_unique($matches[0]);
foreach($words as $word) {
$output = preg_replace("/$word/","*****",$output);
}
}
return $output;
}
悪い言葉のフィルターが冒とくされていることは知っていますが、私のクライアントはこれを要求しました。
今、私はデータベースにリストを持っていますここにいくつかのエントリがあります。
^ass$,^asses$,^asshopper,^cock$,^coon,^cracker$,^cum$,^dick$,^fap$,^heeb$,^hell$,^homo$,^humping,^jap$,^mick$,^muff$,^paki$,^phap$,^poon$,^spic$,^tard$,^tit$,^tits$,^twat$,^vag$,ass-hat,ass-pirate,assbag
ご覧のとおり、特定の単語には曲折アクセント記号とドル記号を使用しています。
私が抱えている問題は、最初の3つの単語がass
次のように書いても単語をブロックしていることですglasses
が、最初の3つを超えるものgrasshoppers
はすべて正常に機能します。これらの前に、3つのエントリを追加してみました。これが問題でした。 、しかし残念ながらそうではありません。
私がこれを書いた方法に何か問題がありますか?