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实现水仙花数示例分享
Apr 03 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
php查询操作实现投票功能
May 09 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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静态新闻列表自动生成代码
2007/06/14 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
mac下安装nginx和php
2013/11/04 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
用python删除java文件头上版权信息的方法
2014/07/31 Python
Pandas 同元素多列去重的实例
2018/07/03 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
2014全国两会心得体会
2014/03/17 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
婚庆公司计划书
2014/09/15 职场文书
丧事答谢词
2015/01/05 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
MySQL GTID复制的具体使用
2022/05/20 MySQL