ID: 24645
User updated by: nek at capsule dot org
Reported By: nek at capsule dot org
Status: Bogus
Bug Type: Regexps related
Operating System: Linux
PHP Version: 4.3.1
New Comment:
oups,
sorry, i realize now that \1 will be replaced by ereg_replace, but is
not yet replaced inside the function
show get some sleep or vitamin i guess
Previous Comments:
------------------------------------------------------------------------
[2003-07-14 10:10:15] [EMAIL PROTECTED]
ereg_replace() is working exactly as expected. The
inner-most functions are processed first, so strtolower()
gets processed before ereg_replace(). Therefore,
"HREF=\"\\1\"" is being sent through strtolower(), not "<A
HREF=\"JAVASCRIPT:COMMENT()\">". strtolower() has no idea
what \1 means other than \1. This is totally expected
behaviour.
Try doing something writing like foo(bar($s)) and write
your own functions for foo() and bar(). bar() is always
performed first. Same thing in this case.
The behaviour you're proposing is just not the expected
bevariour, hence the bogusness.
J
------------------------------------------------------------------------
[2003-07-14 09:43:11] nek at capsule dot org
doh... tab then return = submit form.. sorry
i said :
<?php
$newsaff = "<A HREF=\"JAVASCRIPT:COMMENT()\">THIS IS A TEST LINK</A>";
$newsaff =
ereg("HREF=\"([^\"]+)\"",$newsaff,$newsreplace);
for ($i=1;$i<sizeof($newreplace);$i++) {
$newsaff =
str_replace($newreplace[$i],strtolower($newreplace[$i]),$newsaff);
}
print $newsaff;
?>
maybe there's a simplier solution, that's coded from scratch ;)
but yes indeed, that's complicated and a non bogus ereg_replace would
be from great help :)
thanks
------------------------------------------------------------------------
[2003-07-14 09:39:50] nek at capsule dot org
you mean something like :
<?php
$newsaff = "<A HREF=\"JAVASCRIPT:COMMENT()\">THIS IS A TEST LINK</A>";
$newsaff =
ereg("HREF=\"([^\"]+)\"",$newsaff,$newsreplace);
for ($i=1;$i<sizeof($newreplace);$i++)
print $newsaff;
?>
------------------------------------------------------------------------
[2003-07-14 09:21:06] [EMAIL PROTECTED]
That's correct, so this is bogus. Try using
ereg()/preg_match() with the optional registers used in
the third argument to get the results you're looking for.
J
------------------------------------------------------------------------
[2003-07-14 09:19:55] nek at capsule dot org
well,
maybe the matching string should be considered as a normal one, so we
can use some functions on it.
this would render ereg_replace function even more powerfull, isn't it ?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/24645
--
Edit this bug report at http://bugs.php.net/?id=24645&edit=1