php关键字仅替换一次的实现函数


Posted in PHP onOctober 29, 2015

对于批量替换关键字的问题,仅替换而言没什么可说的,但这里需要的是每个关键字仅需要替换一次就可以了。查阅了php相关函数文档,发现php本身是没有函数实现这个功能的,所以不得不自己解决了。总结了几种可行方法,小记一下!
(1)使用 preg_replace 函数实现这个功能,因为 preg_replace 这个函数本身是可以实现控制替换次数的,所以一开始就想到他了,具体实现方法如下:

//可以实现替换次数的控制,不仅限于只替换一次,比如$limit为2的时候表示一个词出现很多吃的时候仅替换2次,-1表示全部替换。$search 和 $replace 都可以是字符串或者数组,但必须对应 
function str_replace_limit($search,$replace,$content,$limit=-1){ 
  if(is_array($search)){ 
    foreach ($search as $k=>$v){ 
      $search[$k]='`'.preg_quote($search[$k],'`').'`'; 
    } 
  }else{ 
    $search='`'.preg_quote($search,'`').'`'; 
  } 
  //把图片描述去掉 
  $content=preg_replace("/alt=([^ >]+)/is",'',$content); 
  return preg_replace($search,$replace,$content,$limit); 
}

(2)使用substr_replace 函数来实现,不过这里仅能实现仅一次替换

//首先找到关键字所在位置,然后使用 substr_replace(系统函数)进行替换操作 
function str_replace_once($search,$replace,$content){ 
  //把图片描述去掉 
  $content=preg_replace("/alt=([^ >]+)/is",'',$content); 
  $pos=strpos($content,$search); 
  if($pos===false){ 
    return $haystack; 
  } 
  return substr_replace($content,$replace,$pos,strlen($search)); 
}

`以上就是PHP只替换一次以及控制替换次数的实现函数,希望对大家的学习有所帮助。

PHP 相关文章推荐
php遍历目录viewDir函数
Dec 15 PHP
Window下PHP三种运行方式图文详解
Jun 11 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
Yii把CGridView文本框换成下拉框的方法
Dec 03 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 PHP
深入浅析PHP7.0新特征(五大新特征)
Oct 29 #PHP
适用于初学者的简易PHP文件上传类
Oct 29 #PHP
php实现网站文件批量压缩下载功能
Oct 28 #PHP
php简单日历函数
Oct 28 #PHP
php将数组存储为文本文件方法汇总
Oct 28 #PHP
php如何获取文件的扩展名
Oct 28 #PHP
php检查页面是否被百度收录
Oct 28 #PHP
You might like
PHP fclose函数用法总结
2019/02/15 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python文字转语音的实例代码分析
2019/11/12 Python
俄罗斯女装店:12storeez
2019/10/25 全球购物
大门门卫岗位职责
2013/11/30 职场文书
十月份红领巾广播稿
2014/01/22 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
党小组鉴定意见
2015/06/02 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
SQL中的连接查询详解
2022/06/21 SQL Server