highlighting regex matches

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I'm trying to achieve the following:

start form entry
user enters form data and submits ($form_data)
preg_match_all data  for  $pattern, store matches in $match_arr
if one or more matches
  display string back to user, with matched substrings in different
  start form entry again
else continue

my initial solution to recontructing the string:
// if 1 match
preg_replace ($pattern,'<em>'.$match_arr[0][0].'</em>',$form_data,1);
// if multiple matches
preg_replace ($pattern,'<em>'.$match_arr[0].'</em>',$form_data,-1);

..but the latter doesn't work the way I hoped. When the replace var is
an array $pattern also must be an array for preg_replace to use the
different array values in $replace.

Any ideas how to get around this problem in an elegant manner? Or an
alternative solution altogether? I searched for a function/solution
that tells me at which position preg_match_all() found a match, so I
can avoid the preg_replace altogether, but I haven't found any.


Re: highlighting regex matches

On 23.05.2007 15:37 semi_evil@inbox.com wrote:
Quoted text here. Click to load it

I think you're looking for PREG_OFFSET_CAPTURE flag (see preg_match_all  
manual page).

gosha bine

extended php parser ~ http://code.google.com/p/pihipi
blok ~ http://www.tagarga.com/blok

Site Timeline