On 8/18/09 10:56 AM, "Merlin Morgenstern" <merlin_x@xxxxxxxxxxx> wrote: > > > Ashley Sheridan wrote: >> On Tue, 2009-08-18 at 16:00 +0200, Merlin Morgenstern wrote: >>> Hi there, >>> >>> I am highlighting keywords with the help of pregreplace. This works >>> great with one limitation. If the word that has to be replaced contains >>> a slash, preg throws an error. So far I could not find a fix. Can >>> someone help? >>> >>> Here is the code: >>> >>> >>> $pattern = "/\b($words)\b/is"; >>> $replace = '<span style="background:#FF0000;color:#FCCCCC;">\\1</span>'; >>> return preg_replace($pattern,$replace,$str); >>> >>> Thank you in advance, >>> >>> Merlin >>> >> Well, a slash has a special meaning inside PHP strings, more so for >> double quoted strings. Are you correctly escaping the slash as a double >> slash so that it's not interpreted by the string as an escaped >> character, as you will need to as the preg_replace will be interpreting >> it as an escape sequence to match? >> >> Thanks, >> Ash >> http://www.ashleysheridan.co.uk >> >> >> > HI, replacing the delimiter slash by ~ solved the problem. Thank you which means that words with ~ in them will fail. as Al pointed out, preg_quote() is a more general solution. it escapes all tricky pcre characters as well as the delimiter. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php