I am facing a strange behavior of PHP's ereg_replace() function. Here is
scenario:
Problem:
Removing "__" (2 continuous underscores) and Capitalizing character that
immediately follows "__" from a string. In our example our string
is 'ss__name' and expected output should be 'ssName'.
Solution:
Tried following code using function "ereg_replace()" but character is not
getting capitalized:
echo ereg_replace('__([:alnum:]{1})',strtoupper('\1'),'ss__name');
Outputs:
"ssname" instead of "ssName"
Here is bit matching explanation of this behavior
http://bugs.php.net/bug.php?id=24645&edit=1 (2nd last answer)
Contrary to above explanation, following code works properly (I just used
different function instead of "strtoupper"):
echo ereg_replace('__([:alnum:]{1})',str_repeat('\1',5),'ss__name');
Outputs:
"ssnnnnname" as expected.
Any idea of such behavior? Or am i making mistake somewhere? I am using PHP
5.1.6 on FC6. Although there is solution in PCRE (preg_replace()) and by many
other, long, ways, I would like to dig first about this behavior.
Thanks
Anirudh Zala
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com
Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php