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教程孙仲岳主讲
Jan 07 PHP
php实现建立多层级目录的方法
Jul 19 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
php pdo操作数据库示例
Mar 10 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
thinkPHP5分页功能实现方法分析
Oct 25 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
PHP实现获取文件mime类型多种方法解析
May 28 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文件打包下载zip
2017/03/01 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
Python的词法分析与语法分析
2013/05/18 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
Python页面加载的等待方式总结
2021/02/28 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
华为C++笔试题
2014/08/05 面试题
公司活动策划方案
2014/01/13 职场文书
创先争优活动心得体会
2014/09/04 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang