阻止PHP搜索脚本字符串中的字符


Blocking characters from PHP search script string

我有一个PHP搜索脚本,它根据MySQL数据库中分配的标记获取结果。我想从查询字符串中屏蔽某些内容。例如或一个

我该怎么做我希望人们能理解我的问题。

我当前的代码是:

if(!empty($_GET['q'])){
$keywords=explode(' ',$_GET['q']);
foreach($keywords as $query){
$query=mysql_real_escape_string($query);
$likes[]="keywords LIKE '%{$query}%'";
}
$searchResult=mysql_query("select * from questions where ".implode('or ',$likes)."limit 1");
while($row=mysql_fetch_assoc($searchResult)){
    $results="<div class='webresult'>{$row['result']}</div>";
}
}

所以我认为-你试图以错误的方式解决另一个问题。

如果您不想查找单词,请执行以下操作:

if(!empty($_GET['q'])){
  $keywords=explode(' ',$_GET['q']);
  foreach($keywords as $query){
    if (strlen($query) < 3) {
      $query=mysql_real_escape_string($query);
      $likes[]="keywords LIKE '%{$query}%'";
    }
  }
}

您可以用替换所有不需要的字符

$query = str_replace("!", "", $query);
$query = str_replace(",", "", $query);
$query = str_replace(".", "", $query);

以及您想要阻止的所有字符

如果要去掉某些单词或字符,最简单的方法是存储这些单词或字符的数组,并在分解之前在字符串上使用str_replace。

$exclude = array("!","a","foo");
$clean = str_replace($exclude,"",$_GET['q']);

然后,您可以使用干净的字符串继续使用当前代码:

$keywords=explode(' ',$clean);