Php 从搜索的字符串中删除常用词
好的,我有一个由空格分隔的字符串,即 $commonwords='a,an,and,I,it,is,do,do,for,from,go,how,the等'Php 从搜索的字符串中删除常用词,php,string,comparison,Php,String,Comparison,好的,我有一个由空格分隔的字符串,即 $commonwords='a,an,and,I,it,is,do,do,for,from,go,how,the等' $commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc'; $commonwords = explode(",", $commonwords); $search = "How do I search for files"; $search = explode("
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = "How do I search for files";
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
echo "$value<br/>";
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query;
?>
我收到一个来自$_POST['searchquery']的搜索查询
我想从搜索字符串中删除任何常用词,我要寻找的最终结果将是更简洁的关键字,然后我可以使用这些关键字查询数据库
因此,如果用户搜索“如何搜索文件”
删除所有常用词后,字符串将变为“搜索文件”。这将起作用,但您必须在$commonwords中添加大写的“how”
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = "How do I search for files";
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
echo "$value<br/>";
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query;
?>
$commonwords='a,an,and,I,it,is,do,do,for,from,go,how,the,etc';
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = "How do I search for files";
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
echo "$value<br/>";
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query;
?>
$commonwords=爆炸(“,”,$commonwords);
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = "How do I search for files";
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
echo "$value<br/>";
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query;
?>
$search=“如何搜索文件”;
$search=explode(“,$search”);
foreach($value搜索){
if(!in_数组($value,$commonwords)){
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = "How do I search for files";
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
echo "$value<br/>";
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query;
?>
回显“$value
”;
$query[]=$value;
}
}
$query=内爆(“,$query”);
echo$query;
?>
试试这个():
为了获得更好的结果,将常用词和搜索词转换为小写或大写,这里我使用小写
<?php
$commonwords = 'a,an,and,i,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = strtolower("How do I search for files");
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query; // this is output
?>
这里有一个用于删除停止字的库:。您可以这样使用它:
echo remove_stop_words('The quick brown fox jumps over the lazy dog');
// quick brown fox jumps lazy dog
顺便说一句,你要找的术语是“停止词”。不,我不知道为什么叫停止词。是的,我在考虑大小写匹配,可能只会在$commonwords和$searchquery上使用strtoupper。回答得很好,速度也很快。今天不能胡思乱想-我想我仍然在忍受新年宿醉,无论如何我感谢你的帮助@凯,不客气。如果您最喜欢,请选择我的答案作为正式解决方案。array_diff()会保存您的time@Letmesee酷。我不知道这个函数。我个人会在foreach中降低大小写,这样可以在case中搜索某些内容,但仍然可以删除列表中未加大小写的单词。
$commonwords = 'a,an,and,I,it,is,do,does,for,from,go,how,the,etc';
$commonwords = explode(",", $commonwords);
$search = "How do I search for files";
$search = explode(" ", $search);
foreach($search as $value){
if(!in_array($value, $commonwords)){
echo "$value<br/>";
$query[] = $value;
}
}
$query = implode(" ", $query);
echo $query;
?>