From: IFokkema at Ileos dot nl Operating system: All PHP version: Irrelevant PHP Bug Type: Documentation problem Bug description: Order of replacement using array in str_replace not documented
Description: ------------ Hi guys, After a discussion in the list, I've reread the manual page (http://www.php.net/str_replace) and the comments, checked Google, but need some confirmation. When using an array as the search argument in str_replace(), the array is processed first to last. As expected, but this behaviour is not documented and therefor not reliable for my project. $s = "Input\r\nMore input\rSome more\nEtc"; echo str_replace(array("\r\n", "\n", "\r"), '<BR>', $s); This works as expected (putting exactly one <BR> between every line of input). Related comment on the manual page is from "jr at adslate dot com (03-Jun-2004 02:52)". But since it's not documented, I can't rely on this. If the order of replacement is ever switched, my code stops working properly. Now I have to do this, to process all OS specific line breaks correctly: $s = str_replace("\r\n", "\n", $s); $s = str_replace("\r", "\n", $s); echo str_replace("\n", '<BR>', $s); Can you guys please document the order of handling the search array? Thanks a bunch for all of your work. -- Edit bug report at http://bugs.php.net/?id=38463&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=38463&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=38463&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=38463&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=38463&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=38463&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=38463&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=38463&r=needscript Try newer version: http://bugs.php.net/fix.php?id=38463&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=38463&r=support Expected behavior: http://bugs.php.net/fix.php?id=38463&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=38463&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=38463&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=38463&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=38463&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=38463&r=dst IIS Stability: http://bugs.php.net/fix.php?id=38463&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=38463&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=38463&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=38463&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=38463&r=mysqlcfg
