php str_replace如果传入的是数组的话,怎么解释?

str_replace(array('\\',';','\'','%2527','%27','%20','&', '"', '<', '>'), array('','','','','','','&', '"', '<', '>'), $string);
我知道这是一个替换函数。所以麻烦解答的是数组他是如何替换?另外%2527','%27','%20表示什么?替换是一一对应的还是不对应的?

传入数组用于多重替换及映射替换,str_replace详细用法如下:

str_replace — 子字符串替换

mixed str_replace(mixed $search, mixed $replace, mixed $subject[,int &$count])

该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。 

参数说明:

如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。

如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。

如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。

该转换不会改变大小写。 

如果 search 和 replace 都是数组,它们的值将会被依次处理。 

search:查找的目标值,也就是 needle。一个数组可以指定多个目标。

replace:search 的替换值。一个数组可以被用来指定多重替换。 

subject:执行替换的数组或者字符串。也就是 haystack。      

如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。 

count:如果被指定,它的值将被设置为替换发生的次数。

返回值:

该函数返回替换后的数组或者字符串。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-26
php 4.0.5以后是支持str_replace使用数组的
数组参数替换时候就是对应一一替换的
比如 str_replace(array('1','2'), array('一','二'), $string);
至于%2527 什么的那就是 urlencode之后格式,
%2527两次编码后的单引号
%27 是 &
%20 是 空格追问



为什么不可以???

追答

没什么不可以的啊,你这段我测试了没问题的
除非你php 的版本还不到4.0.5?

追问

怎么可能,都5.33了

第2个回答  推荐于2017-11-26
str_replace() 函数使用一个字符串替换字符串中的另一些字符
基本str开头的函数都是操作字符串,替换不了数组的,
可以遍历数组,在采用str_replace() 替换,
%2527,%27,%20 可能就是个字符串

望采纳 Thx追问

呵呵。看来你水平比我还差。这种写法是正确的,不用质疑。
另外,你文不对题。

追答

- - 技术不精共同学习。

本回答被网友采纳
第3个回答  2015-11-02
就是在两个数组对应的值进行替换呀。