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 mssql 分页SQL语句优化 持续影响
Apr 26 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
Jul 29 PHP
PHP面向对象精要总结
Nov 07 PHP
浅谈PHP的反射API
Feb 26 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
PHP使用QR Code生成二维码实例
Jul 07 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在线打包程序源码
2008/07/27 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
php无限极分类实现方法分析
2019/07/04 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
python实现三维拟合的方法
2018/12/29 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python装饰器代替set get方法实例
2019/12/19 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python实现银行账户系统
2021/02/22 Python
什么是URL
2015/12/13 面试题
乡镇消防工作实施方案
2014/03/27 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书