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 面试碰到过的问题 在此做下记录
Jun 09 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
PHP5常用函数列表(分享)
Jun 07 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
php实现的漂亮分页方法
Apr 17 PHP
PHP、Java des加密解密实例
Apr 27 PHP
php解析xml方法实例详解
May 12 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 PHP
php输出反斜杠的实例方法
Sep 19 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中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php去除数组中重复数据
2014/11/18 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
jquery foreach使用示例
2013/09/12 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
flask框架视图函数用法示例
2018/07/19 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python字符串的拼接方法总结
2019/11/18 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
离婚纠纷代理词
2015/05/23 职场文书
美丽心灵观后感
2015/06/01 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server