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 相关文章推荐
第十五节--Zend引擎的发展
Nov 16 PHP
PR值查询 | PageRank 查询
Dec 20 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
php 文章调用类代码
Aug 11 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
php生成动态验证码gif图片
Oct 19 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
实例讲解PHP表单处理
Feb 15 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 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面向对象编程快速入门
2006/10/09 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
IE中createElement需要注意的一个问题
2010/07/13 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python中去空格函数的用法
2014/08/21 Python
python3设计模式之简单工厂模式
2017/10/17 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
公司年会演讲稿范文
2014/01/11 职场文书
会计专业自荐书
2014/07/08 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
2014年护理部工作总结
2014/11/14 职场文书
公证处委托书
2015/01/28 职场文书
社区植树节活动总结
2015/02/06 职场文书
事业单位聘任报告
2015/03/02 职场文书
培训通知
2015/04/17 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫