From:             [EMAIL PROTECTED]
Operating system: Linux
PHP version:      4.1.1
PHP Bug Type:     PCRE related
Bug description:  nested preg_replace_callback()'s won't work

A preg_replace_callback() that calls a callback function which in turn
makes use of a preg_replace_callback() function too, will not work
correctly. The first preg_replace_callback() will substitute gibberisch
even though the callback function returned a valid string.

Example:

function funcB($arr)
{
  ...
  return $whatever;
}

function funcA($arr)
{
  ...
  $t = preg_replace_callback("/%value([0-9]+)%/", "funcB",
$someotherhaystack)
  return $t; // $t still makes sense here
}

echo preg_replace_callback("/%text([0-9]+)%/", "funcA", $haystack);

// but whatever funcA returned, just some gibberisch is substituted for
/%text[0-9]+%/

-- 
Edit bug report at http://bugs.php.net/?id=16040&edit=1
-- 
Fixed in CVS:        http://bugs.php.net/fix.php?id=16040&r=fixedcvs
Fixed in release:    http://bugs.php.net/fix.php?id=16040&r=alreadyfixed
Need backtrace:      http://bugs.php.net/fix.php?id=16040&r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=16040&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16040&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=16040&r=notwrong
Not enough info:     http://bugs.php.net/fix.php?id=16040&r=notenoughinfo
Submitted twice:     http://bugs.php.net/fix.php?id=16040&r=submittedtwice

Reply via email to