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 相关文章推荐
加强版phplib的DB类
Mar 31 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
php工具型代码之印章抠图
Jul 18 PHP
解决laravel session失效的问题
Oct 14 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
详解Laravel服务容器的优势
May 29 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面向对象精要总结
2014/11/07 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python实现输入数字的连续加减方法
2018/06/22 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
基于Python fminunc 的替代方法
2020/02/29 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
毕业设计计划书
2014/01/09 职场文书
运动会入场式解说词
2014/02/18 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
求职推荐信范文
2015/03/27 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
论文答辩开场白大全
2015/05/27 职场文书
大学生入党群众意见书
2015/06/02 职场文书
招商银行收入证明
2015/06/17 职场文书
高二化学教学反思
2016/02/22 职场文书