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实现异步调用方法研究与分享
Oct 27 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
PHP中使用BigMap实例
Mar 30 PHP
php实现json编码的方法
Jul 30 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
PHP实现文件上传后台处理脚本
Mar 04 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
世界收音机发展史
2021/03/01 无线电
php字符串过滤与替换小结
2015/01/26 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
js实现轮播图的完整代码
2020/10/26 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
详解微信小程序支付流程与梳理
2019/07/16 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
js实现查询商品案例
2020/07/22 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python下10个简单实例代码
2017/11/15 Python
Python中collections模块的基本使用教程
2018/12/07 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
交通事故检查书范文
2014/01/30 职场文书
求职自荐信怎么写
2014/03/06 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
秋天的图画教学反思
2014/05/01 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
英文邀请函
2015/02/02 职场文书
保研推荐信范文
2015/03/25 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
建国大业观后感
2015/06/01 职场文书
第一军规观后感
2015/06/12 职场文书
教师素质教育心得体会
2016/01/19 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers