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

Reply via email to