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