Home  >  Article  >  Backend Development  >  PHP implements that each keyword only needs to be replaced once

PHP implements that each keyword only needs to be replaced once

墨辰丷
墨辰丷Original
2018-06-06 15:14:561319browse

This article mainly introduces PHP to realize that each keyword only needs to be replaced once. Interested friends can refer to it. I hope it will be helpful to everyone.

(1) Use the preg_replace function to implement this function. Because the preg_replace function itself can control the number of replacements, I thought of it from the beginning. The specific implementation method is as follows:

//可以实现替换次数的控制,不仅限于只替换一次,比如$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) Use the substr_replace function to implement, but only one replacement can be achieved here

//首先找到关键字所在位置,然后使用 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)); 
}

Summary: The above is the entire content of this article, I hope it can be helpful to everyone learning helps.

Related recommendations:

Methods and examples of implementing the Model base class based on mysqli in PHP

Methods and examples of the PHP file upload class Detailed explanation

How to implement paging class in PHP and examples

The above is the detailed content of PHP implements that each keyword only needs to be replaced once. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn