我想审查表单字符串中的单词,并使用sql数据库控制审查单词。这是我到目前为止所做的:
while ($bad_w = mysql_fetch_array($result_badw)) {
$newmessage = str_replace($bad_w['word'],"****",$org);
}
关于如何纠正它的任何想法?
答案 0 :(得分:2)
您在替换中反复使用原始字符串。你应该覆盖字符串
($org = str_replace($bad_w['word'],"****",$org)
)确保过滤所有字词。
希望没有人在你的论坛上谈论 Kuroshitsuji :p
答案 1 :(得分:0)
每次更换新单词时都会覆盖$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);
}