首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP智能解析用户搜索词

用PHP智能解析用户搜索词
EN

Stack Overflow用户
提问于 2010-10-05 14:17:50
回答 2查看 1.8K关注 0票数 1

我正在为我的PHP网站创建一个搜索服务,我想知道其他人是如何智能地解析基于引号(以及将来可能还有其他符号)的搜索词的。

换句话说,搜索术语螺丝刀锤子可能会产生一系列‘螺丝起子’,‘锤子’,但是“亚麻头螺丝起子河”锤子可能会产生‘亚麻头螺丝刀’,‘锤子’。

我知道我可以在一个草率的循环中完成这个任务,但是我确信PHP有内置的东西来处理这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-05 20:48:57

最后,我使用了strtok,按照这个以前的员额

票数 0
EN

Stack Overflow用户

发布于 2010-10-05 16:57:01

尝试使用拆分

类似于:

代码语言:javascript
复制
/* $search_term:
*  "flathead screwdriver" hammer -nails
*/

$terms = preg_split("/[\s]*\\\"([^\\\"]+)\\\"[\s]*|[\s]+/", $search_term);

/* $terms = array(
*      0    =>    "flathead screwdriver"
*      1    =>    "hammer"
*      2    =>    "-nails"
*/

$exclude = array();

foreach($terms as $term){
    if(strpos($term, '-') == 0)
        array_push($exclude, substr($term, 1));
}

/* $exclude = array(
*      0    =>    "nails"
*/

我唯一没有包括的是从$terms数组中删除“钉子”。我把这个留给读者做练习

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档