我已经编写了这个函数
function bad_words($val){
global $pre;
$sql = mysql_query("SELECT * FROM " . $pre . "BAD_WORDS") or die(mysql_error());
$rs = mysql_fetch_assoc($sql);
if (mysql_num_rows($sql) > 0) {
$bad_words = $rs['BAD_WORD'];
$replace = $rs['REPLACE'];
}
$val = str_ireplace($bad_words, $replace, $val);
return $val;
}
BAD_WORDS 表(ID、BAD_WORD、REPLACE)
当我使用此函数时,它会用 id = 1 替换单词,但不会替换其他单词。
我错过了什么?
最佳答案
您只从表中获取第一行。你必须使用循环来迭代 结果集中的所有行。
function bad_words($val)
{
global $pre;
$sql = mysql_query("SELECT * FROM " . $pre . "BAD_WORDS") or die(mysql_error());
if (mysql_num_rows($sql) > 0) {
while($rs = mysql_fetch_assoc($sql)) {
$bad_words[] = $rs['BAD_WORD'];
$replace[] = $rs['REPLACE'];
}
}
$val = str_ireplace($bad_words, $replace, $val);
return $val;
}
关于php词过滤功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10520564/