突出显示搜索字符串的不同变体

时间:2012-10-21 11:35:52

标签: php mysql highlight

我正在使用一个代码来查找类似的单词,例如,如果用户搜索单词“hello”,它也会找到单词“hellö”

但是当我尝试在结果中突出显示搜索字符串时,它只突出显示“你好”,即使它已找到“hellö”

代码:

$StrSQL = "SELECT `text` FROM `articles` WHERE $strCondition ORDER BY $strOrderBy";


    foreach ($dbh->query($StrSQL) as $row) {
        $text = $row['text'];
        $searchvalue2 = $row['text'];


//to highlight entire unicode word
$searchvalue2 = preg_replace("/\p{L}*?".preg_quote($query)."\p{L}*/ui", "<b>$0</b>", $searchvalue2);
echo "<br>".$searchvalue2."<br>";
$ strCondition的回声是这样的:

( REPLACE(text, 'ـ', '') REGEXP 'hell(ö|o|ô)') 

我怎样才能突出显示你好hellö和hellô,而不仅仅是确切的$查询.. 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

有2个PHP函数可能会有所帮助。

Soundex是一种通过声音索引名称的语音算法,如英语中所述。并且Metaphone改善了Soundex的英语。

您需要创建一个单独的字段来保存它。