时间:2021-05-26
定义和用法
str_replace() 函数使用一个字符串替换字符串中的另一些字符。
语法
str_replace(find,replace,string,count)
参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。
提示和注释
注释:该函数对大小写敏感。请使用 str_ireplace() 执行对大小写不敏感的搜索。
注释:该函数是二进制安全的。
例子 1
复制代码 代码如下:
<?php
echo str_replace("world","John","Hello world!");
?>
输出:
Hello John!
例子 2
在本例中,我们将演示带有数组和 count 变量的 str_replace() 函数:
复制代码 代码如下:
<?php
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "Replacements: $i";
?>
输出:
Array
(
[0] => blue
[1] => pink
[2] => green
[3] => yellow
)
Replacements: 1
例子 3
复制代码 代码如下:
<?php
$find = array("Hello","world");
$replace = array("B");
$arr = array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
?>
输出:
Array
(
[0] => B
[1] =>
[2] => !
)
漏洞相关函数:
<?php
$arr1=Array(
'http://img.jb51.net/img/offer/29/24/70/20/29247020',
'http://img.jb51.net/img/offer/29/24/70/20/29247020-1',
'http://img.jb51.net/img/offer/29/24/70/20/29247020-2'
);
$arr2=Array(
'http://localhost/root/ups/af48056fc4.jpg',
'http://localhost/root/ups/cf33240aa3.jpg',
'http://localhost/root/ups/c30e40419b.jpg'
);
$data='
<imgsrc="http://img.jb51.net/img/offer/29/24/70/20/29247020"/>
<imgsrc="http://img.jb51.net/img/offer/29/24/70/20/29247020-1"/>
<imgsrc="http://img.jb51.net/img/offer/29/24/70/20/29247020-2"/>';
$data=str_replace($arr1,$arr2,$data);
var_dump($data);
?>
替换后的结果是:
string(169)"<imgsrc="http://localhost/root/ups/af48056fc4.jpg"/><imgsrc="http://localhost/root/ups/af48056fc4.jpg-1"/><imgsrc="http://localhost/root/ups/af48056fc4.jpg-2"/>"str_replace函数的声明大概是这样:str_replace($search,$replace,$input[,&$count]),比如在对一个字符串进行替换操作,$input就是源字符串(称为数据源).这很不合理,因为它把数据源放在第3位,而str_pos,strtok,str_repeat等等函数都是把数据源放在第1位.也就是说str_replace并没有替换掉数组中相对应的字符串,而是把数组中的第一个替换,然后把相同的字符串后多余的合并。
解决办法:
functionstrrplace($arr1,$arr2,$data){
if(is_array($arr1)){
foreach($arr1as$key=>$value){
$data=str_replace_once($value,$arr2[$key],$data);
}}
return$data;
}
functionstr_replace_once($needle,$replace,$data)//替换第一次
{
$pos=strpos($data,$needle);
if($pos===false){
return$data;
}
returnsubstr_replace($data,$replace,$pos,strlen($needle));
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了php使用str_replace替换多维数组的实现方法。分享给大家供大家参考,具体如下:在php中,如果使用str_replace替换数组中的字符
第一种:复制代码代码如下://php有三种方法来解决//1、使用str_replace来替换换行$str=str_replace(array("\r\n","\
本文实例讲述了php中preg_replace正则替换用法。分享给大家供大家参考,具体如下:1.php的preg_replace与str_replace都是默认
下面通过本文给大家分享PHP字符串替换str_replace()函数4种用法,具体内容如下所示:mixedstr_replace(mixed$search,mi
本文实例讲述了PHP中strtr与str_replace函数运行性能简单测试。分享给大家供大家参考,具体如下:strtr与str_replace函数性能,很简单