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面向对象编程快速入门
Dec 14 PHP
php实现mysql数据库备份类
Mar 20 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
php分页函数示例代码分享
Feb 24 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
php读取3389的脚本
May 06 PHP
php网页病毒清除类
Dec 08 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
Laravel 验证码认证学习记录小结
Dec 20 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
php 分页函数multi() discuz
2009/06/21 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
Python提取频域特征知识点浅析
2019/03/04 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
商场消防演习方案
2014/02/12 职场文书
中学生操行评语
2014/04/24 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书