[Phpwm] help with function

Phil Beynon phil at infolinkelectronics.co.uk
Fri Mar 23 08:48:53 GMT 2007


> On Fri, 23 Mar 2007 02:13:50 -0000, Phil Beynon  
> <phil at infolinkelectronics.co.uk> wrote:
> > It works just about perfectly, and I've been using for some time.
> >
> > Except last night I searched on '.' and discovered if that's done it
> > replaces every char in the data variable with the same number 
> of .s - all
> > nicely highlighted, and I cannot for the life of me see why.
> 
> You probably want to run the search-term through preg_quote to 
> escape the  
> . (and any other RE characters): http://uk2.php.net/preg-quote
> 
> Greg

Hi Greg,

That was the sort of approach I was trying, but it didnt seem to work as it should or at least as I expected it to.
Then I was having a think about the fact that eregi() was regular expression based and came across a command that I don't think I'd ever seen before called quotemeta() which explicitly escapes regular expression characters.
http://uk.php.net/quotemeta

So changing the $search part of the eregi() to:

$textarr[$key] = eregi_replace(quotemeta($search),"<FONT style=\"BACKGROUND-COLOR: #ff0000\">" . $search . "</FONT>",$value);}}

Fixed it and it now gives consistent, and more importantly expected, results.

Phil




More information about the Phpwm mailing list