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.ini中文版(2)
Oct 09 PHP
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
微信支付开发告警通知实例
Jul 12 PHP
php 的反射详解及示例代码
Aug 25 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
PHP优化之批量操作MySQL实例分析
Apr 23 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
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
简单谈谈Python流程控制语句
2016/12/04 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
python3中for循环踩过的坑记录
2020/12/14 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
最新大学生自我评价
2013/09/24 职场文书
函授自我鉴定
2013/11/06 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
售后专员岗位职责
2013/12/08 职场文书
党风廉政承诺书
2014/03/27 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
技术股份合作协议书
2014/10/05 职场文书
庆祝国庆节标语
2014/10/09 职场文书
交通安全月活动总结
2015/05/08 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
Java 在生活中的 10 大应用
2021/11/02 Java/Android