ID:               33773
 User updated by:  tomlove at gmail dot com
-Summary:          str_replace - recursive replace for arrays is
                   dangerous
 Reported By:      tomlove at gmail dot com
-Status:           Open
+Status:           Closed
 Bug Type:         Feature/Change Request
 Operating System: Linux / Windows
 PHP Version:      4.3.11
 New Comment:

Actually, I realise it wouldn't be a trivial to change this behaviour.
Probably better to leave checks for recursive cases to the script.


Previous Comments:
------------------------------------------------------------------------

[2005-07-19 18:14:12] tomlove at gmail dot com

Description:
------------
I assume this is a feature: str_replace recursively replaces when both
$search and $replace are arrays.

It's too easy for this to cause runaway memory consumption though. 

I've never needed to take advantage of the recursive nature of the
function, and wouldn't expect many others to.

The code below is enough to hang my system. 

Reproduce code:
---------------
for ($i = 0; $i < 50; $i++) {
  $arr1[$i] = "foo";
  $arr2[$i] = "foobarfoo";
}

$str = "foobar";
echo str_replace($arr1, $arr2, $str);

Expected result:
----------------
Ideally:
foobarfoobar

Actual result:
--------------
foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar.... 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=33773&edit=1

Reply via email to