キーワードを強調表示するこの機能があります。うまく機能しますが、一重引用符と二重引用符では機能しないようです。
function highlight($input, $keywords) {
// Hello Mr Regex
preg_match_all('~\w+~', $keywords, $match);
// If there's no match
if(!$match) { return $input; }
// Case sensitive search
//$result = '~\\b(' . implode('|', $match[0]) . ')\\b~';
// Case insenstive search
$result = '~\\b(' . implode('|', $match[0]) . ')\\b~i';
// Return highlighted text
return preg_replace($result, '<strong>$0</strong>', $input);
}
$keywords = "just another what's little's test";
$input = "here what what's just looking little's another's this's for another one that requires a test";
結果:ここにあるのは少ししか見えないものですこれは別のものですテストが必要な別のものです
この例では、これののを強調表示するべきではありません。
入力とキーワードの両方にも使用htmlspecialchars()
してみましたが、これも一致していないようです。
何か案は?