検索機能でキーワードを強調表示するコードがあります。その代わりに、テキストの単語の一部であっても、キーワードを強調表示できるようにしたいと考えています。たとえば、「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;
}