我对字符串有一个非常基本的“过滤器”,根据数组内容删除单词。
$delete = array("bad", "words", "delete");
$string= str_replace($delete , '', $string);
这样做没有问题,但我想让它成为一个基于数据库的$ delete2数组。这就是我所拥有的:
$delete2= array();
$res=mysql_query("SELECT * FROM words WHERE type='delete' ");
while($row = mysql_fetch_array($res)){
$delete2[] = $row['delete'];
}
现在如果我输出这段代码:
$delete = array("bad", "words", "delete");
$string= str_replace($delete , '', $string);
$string= str_replace($delete2 , '', $string);
第二个str_replace不会替换任何东西。我错过了什么?谢谢!
答案 0 :(得分:0)
第二个str_replace正在处理已经处理的$ string。在您的代码中,两次替换都将其分配给另一个变量。就像第一个$str_rslt1 = ...
一样。
$delete2= array();
$res=mysql_query("SELECT * FROM words WHERE type='delete' ");
while($row = mysql_fetch_array($res)){
$delete2[] = $row['delete'];
}
$delete = array("bad", "words", "delete");
$str_rslt1 = str_replace($delete , '', $string);
$str_rslt2 = str_replace($delete2 , '', $string);
echo "<p>Result 1: $str_rslt1</p>\n";
echo "<p>Result 2: $str_rslt2</p>\n";
另外,使用mysqli函数代替mysql函数。 mysqli被折旧并受SQL注入。查找准备语句和mysqli以获取更多信息。
答案 1 :(得分:0)