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

5年以前  |  阅读数:501 次  |  编程语言:PHP 

对于批量替换关键字的问题,仅替换而言没什么可说的,但这里需要的是每个关键字仅需要替换一次就可以了。查阅了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例