突出关键字的搜索结果php


Highlight keyword on search results php

当用户键入当前关键字时,我试图使任何关键字加粗。

我有这个代码,它工作得很好。

for($k=$no_words; $k>0 ;$k--) {
            $w=trim($search_array[$k-1]);
            if($w!='')
            {
                $result[$i]['title'] = preg_replace('/(' . preg_quote($search_array[$k-1], '/') . ')/siU', '<b>''1</b>', $result[$i]['title']);
                $result[$i]['description'] = preg_replace('/(' . preg_quote($search_array[$k-1], '/') . ')/siU', '<b>''1</b>', $result[$i]['description']);
            }
        }

我的问题如下:

我有这个关键字:这是我的关键字

当我输入:"这是我的关键字",我得到这样的结果:"这是我的关键字"

但是当我输入:"This is keyword"时,我得到的结果是:"This is my keyword",结果中的单词没有被加粗。

我做错了什么?

我想你需要以下内容:

$search_array = array_unique(explode(' ', $search));
foreach ($search_array as $k => $v)
{
    $w = trim($v);
    if ($w)
    {
        $result[$i]['title'] = preg_replace('/(' . preg_quote($w, '/') . ')/siU', '<b>''1</b>', $result[$i]['title']);
        $result[$i]['description'] = preg_replace('/(' . preg_quote($w, '/') . ')/siU', '<b>''1</b>', $result[$i]['description']);
    }
}