服务器之家

服务器之家 > 正文

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

时间:2020-11-28 16:11     来源/作者:PHP教程网

对于批量替换关键字的问题,仅替换而言没什么可说的,但这里需要的是每个关键字仅需要替换一次就可以了。查阅了php相关函数文档,发现php本身是没有函数实现这个功能的,所以不得不自己解决了。总结了几种可行方法,小记一下!
(1)使用 preg_replace 函数实现这个功能,因为 preg_replace 这个函数本身是可以实现控制替换次数的,所以一开始就想到他了,具体实现方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//可以实现替换次数的控制,不仅限于只替换一次,比如$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 函数来实现,不过这里仅能实现仅一次替换

?
1
2
3
4
5
6
7
8
9
10
//首先找到关键字所在位置,然后使用 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只替换一次以及控制替换次数的实现函数,希望对大家的学习有所帮助。

标签:

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部