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计算页面执行时间的实现代码
Jun 18 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
ThinkPHP采用原生query实现关联查询left join实例
Dec 02 PHP
PHP之密码加密的几种方式
Jul 29 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
php的扩展写法总结
May 14 PHP
Yii框架模拟组件调用注入示例
Nov 11 PHP
PHP copy函数使用案例代码解析
Sep 01 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
php函数的常用方法及注意之处小结
2011/07/10 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
JS原型与继承操作示例
2019/05/09 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
Python 连连看连接算法
2008/11/22 Python
使用Python编写Linux系统守护进程实例
2015/02/03 Python
用python与文件进行交互的方法
2018/03/01 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
flask应用部署到服务器的方法
2019/07/12 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
Python实现AI换脸功能
2020/04/10 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
StringBuilder和String的区别
2015/05/18 面试题
小学英语教学反思案例
2014/02/04 职场文书
工厂搬迁方案
2014/05/11 职场文书
服装发布会策划方案
2014/05/22 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏