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 相关文章推荐
在线短消息收发的程序,不用数据库
Oct 09 PHP
聊天室php&mysql(五)
Oct 09 PHP
实用函数10
Nov 08 PHP
在PHP中使用Sockets 从Usenet中获取文件
Jan 10 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
ThinkPHP的Widget扩展实例
Jun 19 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
php常用日期时间函数实例小结
Jul 04 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
Laravel中Kafka的使用详解
Mar 24 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 MemCached 高级缓存应用代码
2010/08/05 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
原生JavaScript实现随机点名表
2021/01/14 Javascript
Python jieba库用法及实例解析
2019/11/04 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
教师自我评价范例
2013/09/24 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
python多次执行绘制条形图
2022/04/20 Python
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL