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

yipeiwu_com6年前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邮件发送,php发送邮件的类

smtp.class.php 这个是类把他做保存到一个文件中. 复制代码 代码如下: <?php class smtp { /* Public Variables */ var $...

PHP 时间日期操作实战

常见常用的时间函数: 1.time(); //取得1970/1/1 00:00:00 到现在的总秒数 <?echo time();?> 2.mktime(); //设定时间...

php 日期时间处理函数小结

php 计算小时数并化整为零复制代码 代码如下: /* Author: 杨宇 yangyu@sina.cn */ //参数$hours_min为数组,数组的格式为1:10,返回为1小时...

thinkphp实现图片上传功能

关于图片上传,实现方法很多,比如可以用jQuery,当然,我们的thinkPHP内置了关于图片上传的功能,我们可以直接使用,使用方法如下: 首先,是表单书写,我们建立如下表单: &...

PHP中创建图像并绘制文字的例子

PHP中创建图像并绘制文字的例子

在图像中显示的文字也需要按坐标位置画上去。在PHP中不仅支持比较多的字体库,而且提供了非常灵活的文字绘制方法。例如,在图中绘制缩放、倾斜、旋转的文字等。可以使用imageString()...