搜索插件反馈

style 1640

已处理

搜索插件在搜索的时候  输入 字母  比如  “奇狐 a   b    c   d”    字母中间加空格会出现很多字母不知道怎么回事 ,我自己在本地安装的新环境 没有装编辑器是纯文本 也会出现同样的问题,还有老哥能不能把用户名也支持模糊跟精确搜索啊!有时间研究一下!

 

下面图片 $pagesize = $conf["pagesize"]; 实测有效可以跟随主题列表的列数 改变而改变感觉还不错啊

广东
我的个性签名测试
管理员回复
  • 凨影2022-10-22
    你先搞懂关键词以空格分割的含义再说吧
  • 凨影2022-10-26
    style 发表于 2022-10-26 17:40
    大佬有时间研究下看能不能解决
    首先是空格分割的关键词,你用“奇狐 span”做为关键词搜索,那么分割后关键词就是“奇狐”和“span”,高亮替换的时候,当然的是奇狐和span都会被高亮替换显示出来好吧。
    关键词高亮前后标签是span,就算替换成DIV、B或其它标签,你还不是照样用xxx div或者xxx B来说事?
全部回复 (11)
  • 凨影 2022-10-22
    2
    你先搞懂关键词以空格分割的含义再说吧
    联系QQ:77798085 赞助请点这里
  • style 2022-10-26
    3

    研究了下但是搞不懂什么问题 ,只要关键词里带这个函数里面的  HTML代码  就会出现上面的问题 如 "奇狐   span"   或者  "奇狐  class"  等等...以此类推

     删除里面的HTML 不会出现上面的情况  但是无法高亮了显示了!!

    function search_keyword_highlight($s, $keyword_arr) {
        foreach($keyword_arr as $keyword) {
            $s = str_ireplace($keyword, "<span class="text-danger">".$keyword."</span>", $s);
        }
        return $s;
    }

    广东
    我的个性签名测试
  • style 2022-10-26
    4
    凨影 发表于 2022-10-22 16:33
    你先搞懂关键词以空格分割的含义再说吧
    大佬有时间研究下看能不能解决
    广东
    我的个性签名测试
  • 凨影 2022-10-26
    5
    style 发表于 2022-10-26 17:40
    大佬有时间研究下看能不能解决
    首先是空格分割的关键词,你用“奇狐 span”做为关键词搜索,那么分割后关键词就是“奇狐”和“span”,高亮替换的时候,当然的是奇狐和span都会被高亮替换显示出来好吧。
    关键词高亮前后标签是span,就算替换成DIV、B或其它标签,你还不是照样用xxx div或者xxx B来说事?
    联系QQ:77798085 赞助请点这里
  • style 2022-10-26
    6
    凨影 发表于 2022-10-26 19:32
    首先是空格分割的关键词,你用“奇狐 span”做为关键词搜索,那么分割后关键词就是“奇狐”和“span”,高亮替换的时候,当然的是奇狐和span都会被高亮替换显示出来好吧。关键词高亮前后标签是sp ...
    是啊,换成其他标签也一样,所以看能不能有其他方法解决,要不就只能删掉标签了不要高亮了
    广东
    我的个性签名测试
  • oliolo 2022-11-9
    7

    你说的是这个意思?

    黑龙江
    签名等待审核中!
  • style 2022-11-9
    8
    oliolo 发表于 2022-11-09 12:59
    你说的是这个意思?
    是的 
    广东
    我的个性签名测试
  • style 2022-11-9
    9
    oliolo 发表于 2022-11-09 12:59
    你说的是这个意思?
    function search_keyword_highlight($s, $keyword_arr){
        foreach($keyword_arr as $keyword){
            $s = str_ireplace($keyword, "<span class="text-danger">".$keyword."</span>", $s);
        }
        return $s;
    }

    是多个关键词    涉及到上面函数里的 html   <span class="text-danger">".$keyword."</span>"  标签就会乱

    广东
    我的个性签名测试
  • oliolo 2022-11-9
    10
    style 发表于 2022-11-09 14:41
    function search_keyword_highlight($s, $keyword_arr) { foreach($keyword_arr as $keyword) { $s = ...

    更新下代码试试

    function search_keyword_highlight($s, $keyword_arr){
        foreach($keyword_arr as $key => $keyword){
            if($key >= 1){
                $chunks = preg_split("/(<span.*?\/span>)/ms", $s, -1, PREG_SPLIT_DELIM_CAPTURE);
                foreach($chunks as $c){
                    if(strpos($c, "<span") !== 0){
                        $tmp = $c;
                        $c = str_ireplace($keyword, "<span class="text-danger">".$keyword."</span>", $c);
                        $s = str_ireplace($tmp, $c, $s);
                    }
                }
            }else{
                $s = str_ireplace($keyword, "<span class="text-danger">".$keyword."</span>", $s);
            }
        }
        return $s;
    }
    黑龙江
    签名等待审核中!
  • style 2022-11-10
    11
    oliolo 发表于 2022-11-09 16:18
    更新下代码试试function search_keyword_highlight($s, $keyword_arr) {foreach($keyword_arr as $key = ...
    可行 谢谢大佬
    广东
    我的个性签名测试
  • style 2022-11-10
    12
    凨影 发表于 2022-10-26 19:32
    首先是空格分割的关键词,你用“奇狐 span”做为关键词搜索,那么分割后关键词就是“奇狐”和“span”,高亮替换的时候,当然的是奇狐和span都会被高亮替换显示出来好吧。 关键词高亮前后标签是sp ...

    已解决,站长可以更新一下

    代码一粘贴就变成双引号了!

    function fox_search_keyword_highlight($s, $keyword_arr){
        foreach($keyword_arr as $key => $keyword){
            if($key >= 1){
                $chunks = preg_split("/(<span.*?\/span>)/ms", $s, - 1, PREG_SPLIT_DELIM_CAPTURE);
                foreach($chunks as $c){
                    if (strpos($c, "<span") !== 0){
                        $tmp = $c;
                        $c = str_ireplace($keyword, "<span class="text-danger">".$keyword. "</span>", $c);
                        $s = str_ireplace($tmp, $c, $s);
                    }
                }
            }else{
                $s = str_ireplace($keyword, "<span class="text-danger">".$keyword. "</span>", $s);
            }
        }
        return $s;
    }
    广东
    我的个性签名测试