RE: PHP 4.0 Bug #8472 Updated: calling a function in a regular ex pression
| From: | Simon Southwood | Date: | Mon, 08 Jan 2001 12:05:37 +0000 |
| Subject: | RE: PHP 4.0 Bug #8472 Updated: calling a function in a regular ex pression | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-43357@lists.php.net to get a copy of this message | ||
fine, but then how is it possible to call a function withing 'ereg_replace'
which refers to \\1 ???
is this possible, because if it isn't, it should be.
-----Original Message-----
From: Bug Database [mailto:php-dev@lists.php.net]
Sent: Monday, January 08, 2001 1:59 PM
To: simon.southwood@sportal.net
Subject: PHP 4.0 Bug #8472 Updated: calling a function in a regular
expression
ID: 8472
Updated by: cynic
Reported By: simon.southwood@sportal.net
Old-Status: Open
Status: Closed
Bug Type: *Regular Expressions
Assigned To:
Comments:
This is a user error:
# 34 + 5 = 39
print(image("34"));
$pat="%image([0-9])%";
# "fdg" . ( "\\1" + 5 ) ... i. e. "fdg5"
$rep="fdg".image("\\1");
why is \\1 not replaced with the imageID?
# ereg_replace( "%image([0-9])%" , "fdg5" , $html )
$html=ereg_replace($pat, $rep, $html);
Previous Comments:
---------------------------------------------------------------------------
[2001-01-08 01:53:37] simon.southwood@sportal.net
haven't tried 4.0.4, so i don't know.
- will try to convince the admin here to upgrade ...
---------------------------------------------------------------------------
[2001-01-05 23:21:01] sniper@php.net
Have you tried PHP 4.0.4 ? Does this happen with it?
--Jani
---------------------------------------------------------------------------
[2000-12-29 05:18:54] simon.southwood@sportal.net
oops
$html=$html="<%image1%>some junk in here<%image2%>even more junk in
here<%image3%>and some more for good measure<%image4%>";
---------------------------------------------------------------------------
[2000-12-29 04:53:38] simon.southwood@sportal.net
function image($arrayRef)
{
$arrayRef += 5;
return $arrayRef;
}
$html="<%image1%>some junk in here<%image2%>even more junk in
here<%image3%>and some more for good measure<%image4%>
print(image("34"));
$pat="%image([0-9])%";
$rep="fdg".image("\1");
$html=ereg_replace($pat, $rep, $html);
/*
the function works fine if "$arrayRef += 5;" is commented out (it returns
exactly whatever "\1" is.
it also works fine when called with either a string or an integer as
argument, called outside the regexp function.
however, inside the regexp it always returns 5.
i dunno if this is a bug, if not then i do apologise, and i'll find another
way of doing this.
*/
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=8472