1

同様の単語を見つけるコードも使用しています。たとえば、ユーザーが「hello」という単語を検索すると、「hello」という単語も見つかります

しかし、結果で検索文字列を強調表示しようとすると、「hello」が見つかったにもかかわらず、「h​​ello」のみが強調表示されます

コード:

$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|ô)') 

正確な$queryだけでなく、hello helloとhelloを強調表示するにはどうすればよいですか..誰か助けてくれますか?

4

1 に答える 1

0

役立つかもしれない2つのphp関数があります。

Soundexは、英語で発音されるように、名前を音で索引付けするための音声アルゴリズムです。そして Soundexを英語用に改良したMetaphone 。

これを保持するには、保持する別のフィールドを作成する必要があります。

于 2012-10-21T11:59:59.290 に答える