<?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);
}
?>
Dieser Code führt eine reguläre Ausdruckersetzung durch, um ein span-Tag mit einer definierbaren Farbe hinzuzufügen. Kann sowohl für bezeichnungsabhängige als auch für bezeichnungsunabhängige Ersetzungen verwendet werden.
Das wird nicht funktionieren …
Sie verwenden nicht die: $highlightColor
irgendwo im Ersetzungscode …
Grüße
feha
@feha, es ist vielleicht zu spät für Sie, dies zu sehen, aber ich habe dies in den php_manual über preg_replace in den Kommentaren gefunden – einfacher und funktioniert für die meisten Fälle gut
function highlight($haystack,$needle)
{
$haystack=preg_replace("/($needle)/i","<span style='font-weight:bold'>\${1}</span>",$haystack);
return $haystack;
}