php关键字仅替换一次的实现函数
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-23 22:07:40 浏览: 评论:0
这篇文章主要介绍了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只替换一次以及控制替换次数的实现函数,希望对大家的学习有所帮助。
Tags: php关键字替换函数
- 上一篇:深入浅析PHP7.0新特征(五大新特征)
- 下一篇:php如何实现只替换一次或N次
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)