我得到了一个输出用户评论的while loop
。
如果评论包含来自filter_table
查询评论
$cm_qr = $db -> prepare ("SELECT comment FROM comment_tbl WHERE post_id = :pid");
$cm_qr -> bindParam (":pid", $pid);
$cm_qr -> execute();
while($row = $cm_qr -> fetch()){
$comment = $row_cm_qr['comment'];
}
查询我过滤的单词
$check_filter = $db -> query ("SELECT filter_word FROM filter_tbl");
$check_filter -> execute();
while($filter_row = $check_filter -> fetch(PDO::FETCH_ASSOC)){
$fword = $filter_row['filter_word'];
}
$fwords = array($fword);
答案 0 :(得分:0)
获取过滤词列表的方式是错误的。你不是从他们那里制作阵列的 为此,您可以使用PDO提供的专用提取模式PDO::FETCH_COLUMN
$fwords = $db->query("SELECT filter_word FROM filter_tbl")->fetchAll(PDO::FETCH_COLUMN);
这会给你一个包含单词的数组。
在过滤时,只需编写一个简单的循环(在while循环中)就像这样
foreach ($fwords as $word)
{
if (strpos($comment, $word) !== false)
{
continue 2; //skip that comment from processing
}
}