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为SHOPEX增加日志功能代码
Jul 02 PHP
php若干单维数组遍历方法的比较
Sep 20 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
php base64 编码与解码实例代码
Mar 21 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
php防止表单重复提交实例讲解
Feb 11 PHP
php中file_get_contents()函数用法实例
Feb 21 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
php传值和传引用的区别点总结
Nov 19 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 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
JavaScript DOM 添加事件
2009/02/14 Javascript
jQuery select的操作实现代码
2009/05/06 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
对python中dict和json的区别详解
2018/12/18 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
python+requests接口自动化框架的实现
2020/08/31 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
迎新晚会主持词
2014/03/24 职场文书
先进单位事迹材料
2014/12/25 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
Python中glob库实现文件名的匹配
2021/06/18 Python