PHP中str_replace函数使用小结


Posted in PHP onOctober 11, 2008

这段时间在看《PHP和MySQL Web开发》一书看到str_replace讲解,一段小提示写到:可以为str_replace的三个都使用数组传入,但讲解比较简单,于是决定自己的试验一下该函数在各个参数传入数组时的执行结果。

函数原型:mixed str_replace(mixed needle,mixed new_needle,mixed haystack[,int &count]);
needle:要被替换的字符串,new_needle:替换用的字符串,haystack:操作字符串,count:替换次数【可选参数】

我们重点试验前三个在使用数组是的执行方式:

在都不使用数组时,该函数直接使用new_needle替换所有的needle并返回替换后的字符串。如:str_replace("m","n","my name is jim!")返回ny nane is jin!

1、只对needle使用数组。

示例:str_replace(array('m','i'),'n',"my name is jim!");返回:ny nane ns jnn!
可以看出,函数顺序性的对数组中每个字符串进行替换,并返回替换后的字符串。

2、只对new_needle使用数组。

示例:str_replace('m',array('n','z'),"my name is jim!\n")返回:Arrayy naArraye is jiArray!
该替换比较有意思,如果只对第二个参数使用数组则函数将其作为字符串Array进行使用,将所有的needle替换为了数组。

3、只对haystack使用数组。

示例:str_replace("m","n",array("my name is jim!","the game is over!"))该语句执行结果返回一个数组,即分别为传入的两个字符串替换后的结果。
如果输出数组内容会看到:ny nane is jin! the gane is over!

4、对needle和new_needle都使用数组。

示例:str_replace(array("m","i"),array("n","z"),"my name is jim!")返回:ny nane zs jzn!
查看执行结果可以发现,如果前两个参数都使用数组则函数把数组各个对象项字符串进行了替换,及needle的第一项替换为new_needle的第一项。以此类推。

如果needle数组比new_deedle长,例如:str_replace(array("m","i","s"),array("n","z"),"my name is jim!");返回:ny nane z jzn!可见,对于needle数组多出来的字符串被替换为了空串。
如果new_needle数组比needle长,例如:str_replace(array("m","i"),array("n","z","x"),"my name is jim!")返回ny nane zs jzn!可见new_needle多余的项被忽略。

5、三个参数都使用数组。

例如:str_replace(array("m","i"),array("n","z"),array("my name is jim!","the game is over"))返回的数组内容:ny nane zs jzn!the gane zs over
这个比较好理解,对两个字符串分别执行替换。

简单总结下,防止自己忘记!

PHP 相关文章推荐
如何使用PHP往windows中添加用户
Dec 06 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
基于Zend的Captcha机制的应用
May 02 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 #PHP
php email邮箱正则
Oct 08 #PHP
php获取地址栏信息的代码
Oct 08 #PHP
Cannot modify header information错误解决方法
Oct 08 #PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 #PHP
php 友好URL的实现(吐血推荐)
Oct 04 #PHP
PHP注释实例技巧
Oct 03 #PHP
You might like
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
表单验证的完整应用案例探讨
2013/03/29 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
js style动态设置table高度
2014/10/21 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
python sys.argv[]用法实例详解
2018/05/25 Python
python实现简易内存监控
2018/06/21 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
python实现简单银行管理系统
2019/10/25 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
三维科技面试题
2013/07/27 面试题
竞选部门副经理的自荐书范文
2014/02/11 职场文书
食品安全责任书
2014/04/15 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
助学贷款贫困证明
2014/09/23 职场文书
药店收银员岗位职责
2015/04/07 职场文书