Str替换功能

时间:2013-08-03 09:14:55

标签: php mysql

我想审查表单字符串中的单词,并使用sql数据库控制审查单词。这是我到目前为止所做的:

while ($bad_w = mysql_fetch_array($result_badw)) {
    $newmessage = str_replace($bad_w['word'],"****",$org);
}

关于如何纠正它的任何想法?

2 个答案:

答案 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);
}