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程序--记数器
Oct 09 PHP
测试您的 PHP 水平的题目
May 30 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
从php核心代码分析require和include的区别
Jan 02 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
PHP获取指定月份第一天和最后一天的方法
Jul 18 PHP
PHP生成树的方法
Jul 28 PHP
PHP书写格式详解(必看)
May 23 PHP
php简单中奖算法(实例)
Aug 15 PHP
php+redis实现消息队列功能示例
Sep 19 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+Html+缓存
2006/12/20 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP链表操作简单示例
2016/10/15 PHP
php报错502badgateway解决方法
2019/10/11 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
Python数据类型学习笔记
2016/01/13 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
flask入门之表单的实现
2018/07/18 Python
python redis 删除key脚本的实例
2019/02/19 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
客户代表自我评价范例
2013/09/24 职场文书
技术入股合作协议书
2014/10/07 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
大学体育课感想
2015/08/10 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android