php关键字仅替换一次的实现函数

 更新时间:2015年10月29日 15:46:12   投稿:lijiao  
这篇文章主要介绍了php实现每个关键字仅需要替换一次,有时一个项目里面涉及到批量替换关键字的问题,本文针对控制替换次数进行研究,感兴趣的小伙伴们可以参考一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

对于批量替换关键字的问题,仅替换而言没什么可说的,但这里需要的是每个关键字仅需要替换一次就可以了。查阅了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使用Curl实现模拟登录及抓取数据功能示例

    PHP使用Curl实现模拟登录及抓取数据功能示例

    这篇文章主要介绍了PHP使用Curl实现模拟登录及抓取数据功能,结合实例形式分析了php使用curl进行登陆、验证、cookie操作与数据抓取等相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • PHP使用finfo_file()函数检测上传图片类型的实现方法

    PHP使用finfo_file()函数检测上传图片类型的实现方法

    这篇文章主要介绍了PHP使用finfo_file()函数检测上传图片类型的实现方法,结合实例形式分析了finfo_file()函数的功能、使用方法及相关注意事项,需要的朋友可以参考下
    2017-04-04
  • PHP中使用数组指针函数操作数组示例

    PHP中使用数组指针函数操作数组示例

    这篇文章主要介绍了PHP中使用数组指针函数操作数组示例,本文讲解了current()、key()、next()、prev()、end()、reset()等数组指针函数,需要的朋友可以参考下
    2014-11-11
  • php源码的使用方法讲解

    php源码的使用方法讲解

    在本篇文章里小编给大家分享了关于php源码怎么使用的知识点内容,有此需要的朋友们可以参考下。
    2019-09-09
  • php多层数组与对象的转换实例代码

    php多层数组与对象的转换实例代码

    通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑
    2013-08-08
  • 浅谈PHP SHA1withRSA加密生成签名及验签

    浅谈PHP SHA1withRSA加密生成签名及验签

    这篇文章主要介绍了PHP SHA1withRSA加密生成签名及验签,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案

    php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案

    本文主要介绍针对PHP5.4以下版本的json_encode不兼容JSON_UNESCAPED_UNICODE的处理,需要的朋友可以参考下。
    2016-05-05
  • PHP实现的贪婪算法实例

    PHP实现的贪婪算法实例

    这篇文章主要介绍了PHP实现的贪婪算法,简单说明了贪婪算法的概念、原理并结合实例形式分析了php实现贪婪算法的相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 如何利用PHP执行.SQL文件

    如何利用PHP执行.SQL文件

    本篇文章是对使用PHP执行.SQL文件的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • php生成二维码的几种方式整理及使用实例

    php生成二维码的几种方式整理及使用实例

    本文整理了一些php生成二维码的方式:1.google开放api;2.php类库PHP QR Code;3.libqrencode;4.QRcode Perl CGI & PHP scripts感兴趣的朋友可以参考下哈
    2013-06-06

最新评论

?


http://www.vxiaotou.com