你的问题
您的最后一行,即与您的结果相呼应的那一行是错误的,因为您将整个句子包装在突出显示的上下文(<font>
标签)中。
解决方案
- 您需要解析原始句子;
- 将关键字包装在突出显示的上下文中。
您可以在preg_replace()
函数中执行此操作。我还建议使用目标是在上下文中指示相关性的<mark>
标签。
代码
<?php
$original_sentence = $_POST['words'];
$highlight_sentence = $original_sentence;
$word_to_highlight = array('Hello', 'Bye'); // list of words to highlight
foreach ($word_to_highlight as $word) {
$pattern = printf('/\b%s\b/i', $word); // match a different word at each step
$replace_by = printf('<mark>%s</mark>', $word); // replacement is updated at each step
$highlight_sentence = preg_replace($pattern, $replace_by, $words);
}
?>
<style type="text/css">
mark {
background: #ffc;
}
</style>