剧情:我正在建立一个网站,其中会有很多视频被编入索引,我希望人们可以通过关键字和句子搜索视频。
问题:但是我们都知道互联网上挤满了可以搜索坏词或句子的坏人和机器人,我想将它们带到不同的页面,所以如果查询符合特定的被阻止的单词应该被重定向到特定的URL。
<?php include'func.php';
if(!empty($_GET['q'])){
if ($badword ="no")
{$url='/search/'.preg_replace("/[^A-Za-z0-9[:space:]]/","-",$_GET['q']).'';}
else
{$url='/badsearch/'.preg_replace("/[^A-Za-z0-9[:space:]]/","-",$_GET['q']).'';}
}
else{$url='/';}
header('location:'.$url.''); ?>
我想要一个类似这样的代码,其中$badword
包含坏词,如果我可以进行广泛匹配,我会很高兴,因此搜索暗杀也会被重定向到/ badsearch /因为屁股将是一个坏词
答案 0 :(得分:1)
搜索和收集所有内容都让我得到答案。这个答案可能会帮助其他人。 如果用户输入DoG或cAt,这也将起作用。 这将在每个空格后搜索一个单词,所以如果你有一个像“我有一只坏狗”的查询,这将有效。
<?php
$banned_names = array('dog', 'cat', 'mydog');
$words = explode(" ",$_GET['q']);
if(!empty($_GET['q'])){
foreach($words as $word)
{
$word = strtolower($word);
if(in_array($word, $banned_names))
{$url='/is/bad/'.preg_replace("/[^A-Za-z0-9[:space:]]/","-",$_GET['q']).'/1';}
else
{{$url='/isnot/bad/'.preg_replace("/[^A-Za-z0-9[:space:]]/","-",$_GET['q']).'/1';}}
}
}
else{$url='/';}
header('location:'.$url.'');
?>
答案 1 :(得分:0)
一个简单的解决方案可能是这样的:
$user_input = $_GET['q']);
$badword_list= array("badword1", "badword2", "badword3", "badword4", ...);
if(in_array($user_input, $badword_list))
$url = "something";
else
$url = "something else";
或使用if (preg_match('/\b(badword1|badword2|badword3|badword4)\b/i',$user_input ))