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之PHP语法学习笔记1
Dec 17 PHP
php实现的简单压缩英文字符串的代码
Apr 24 PHP
一些使用频率比较高的php函数
Oct 03 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
php 面向对象的一个例子
Apr 12 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 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 header 跳转
2013/06/17 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
html下载本地
2006/06/19 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
深入分析JSONP跨域的原理
2014/12/10 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
Seajs源码详解分析
2019/04/02 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Python文档生成工具pydoc使用介绍
2015/06/02 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
日语系毕业求职信
2014/07/27 职场文书
组工干部对照检查材料
2014/08/25 职场文书
社会实践活动报告
2015/02/05 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
python文件目录操作之os模块
2021/05/08 Python