<?php
$text='Would you be so kind to highlight css-tricks.com in this string?';
$search='css-tricks.com';
echo textHighlight($text,$search);
//Performs a regex-texthighlight
function textHighlight($text,$search,$highlightColor='#0000FF',$casesensitive=false)
{
$modifier=($casesensitive) ? 'i' : '';
//quote search-string, cause preg_replace wouldn't work correctly if chars like $?. were in search-string
$quotedSearch=preg_quote($search,'/');
//generate regex-search-pattern
$checkPattern='/'.$quotedSearch.'/'.$modifier;
//generate regex-replace-pattern
$strReplacement='$0';
return preg_replace($checkPattern,$strReplacement,$text);
}
?>
This code performs a regular-expression-replace to add a span-tag with a definable color. Can be used either for case-sensitive and case-insensitive replacements.
This will not work …
you are not using the : $highlightColor
anywhere within replace code …
regards
feha
@feha, it maybe too late for you to see this, but I found this in the php_manual on preg_replace in the comments – simpler and works fine for most cases:
function highlight($haystack,$needle)
{
$haystack=preg_replace("/($needle)/i","<span style='font-weight:bold'>\${1}</span>",$haystack);
return $haystack;
}