フォーム文字列から単語を検閲し、SQL データベースで検閲単語を制御したいと考えています。これが私がこれまでに持っているものです:
while ($bad_w = mysql_fetch_array($result_badw)) {
$newmessage = str_replace($bad_w['word'],"****",$org);
}
それを修正する方法についてのアイデアはありますか?
交換で元の文字列を繰り返し使用しています。すべての単語がフィルター処理されるように、文字列
( ) を上書きする必要があります。$org = str_replace($bad_w['word'],"****",$org)
あなたのフォーラムで誰も黒執事について話さないことを願っています :p
$newmessage
新しい単語を置き換えるたびに上書きします。
str_ireplace()
また、大文字と小文字を区別しない も使用する必要があります。これは、検閲に適しています。
このようにしてみてください:
$newmessage = $org;
while($row = mysql_fetch_array($result_badw)) {
$newmessage = str_ireplace($row['word'], "****", $newmessage);
}
または、*
悪い単語と同じ数の文字が必要な場合:
$newmessage = $org;
while($row = mysql_fetch_array($result_badw)) {
$bword = $row['word'];
$repl = str_repeat('*', strlen($bword));
$newmessage = str_ireplace($bword, $repl, $newmessage);
}