You can easily mark a specified word (or array of words) in a string.
<?php
function mark($pattern, $source) {
if (is_array($pattern)) {
$finalPatterns = array_map(function ($value) { return "/(".preg_quote($value).")(?![^<]*>|[^<>]*<\/)/i"; }, $pattern);
} else {
$finalPatterns = "/(".preg_quote($pattern).")(?![^<]*>|[^<>]*<\/)/i";
}
return preg_replace($finalPatterns, "<mark>$1</mark>", $source);
}