0

検索機能でキーワードを強調表示するコードがあります。その代わりに、テキストの単語の一部であっても、キーワードを強調表示できるようにしたいと考えています。たとえば、「el」を検索して「hello」という単語が見つかった場合、h el lo のように表示されます。

コードは次のとおりです。

function highlight_keywords($content, $keywords) {

    if (!is_array($keywords)) {
    $keywords = explode(' ', $keywords);
    }
    foreach ($keywords as $keyword) {
    if (trim($keyword) !== '') {
        $content = preg_replace('/\b(' . preg_quote($keyword) . ')\b/i',     '<span>\1</span>', $content);
    }
    }
    return $content;
}
4

2 に答える 2

0

これを試して:

$content = preg_replace('/(' . preg_quote($keyword) . ')/is','<span>$1</span>', $content);
于 2013-05-30T16:22:29.613 に答える
0

簡単にするために、次を使用できますstr_replace()

$keywords = array('el');
$string = 'hello world';

foreach($keywords as $keyword){
    $string = str_ireplace($keyword, '<b>' . $keyword . '</b>', $string);
}

// $string is now: h<b>el</b>lo world
于 2013-05-30T16:24:19.960 に答える