Home  >  Article  >  Backend Development  >  PHP method to implement str_replace to replace specified times

PHP method to implement str_replace to replace specified times

墨辰丷
墨辰丷Original
2018-05-22 16:21:391820browse

This article mainly introduces the method of replacing a specified number of times with php str_replace, which has a good reference value. Let’s take a look with the editor below

PHP str_replace method, replace the string

The format is as follows:

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

search The target value to find, which is needle. An array can specify multiple targets.

replace search Replacement value. An array can be used to specify multiple replacements.

subject Array or string to perform replacement. That is haystack. If subject is an array, the replacement operation will traverse the entire subject and the return value will also be an array.

count If specified, its value will be set to the number of times the replacement occurred. That is, how many replacements have occurred in total.

Note:

If search and replace are arrays, then str_replace() will perform mapping replacement on subject.

If the number of replace values ​​is less than the number of search values, empty strings will be used for redundant replacements.

If search is an array and replace is a string, then the replacement of each element in search always uses this string.

str_replace replacement method is case-sensitive.

Example:

<?php 
$str = &#39;abcdefgh&#39;; 
echo str_replace(&#39;abc&#39;, &#39;123&#39;, $str); // 123defgh  
$str = &#39;123456&#39;; 
$search = array(1, 2, 3, 4, 5, 6); 
$replace = array(&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;f&#39;, &#39;g&#39;); 
echo str_replace($search, $replace, $str); // abcdefg  
$arr = array(&#39;abc&#39;,&#39;bac&#39;,&#39;cba&#39;); 
$result = str_replace(&#39;b&#39;, &#39;B&#39;, $arr, $count); 
print_r($result); // Array ( [0] => aBc [1] => Bac [2] => cBa ) 
echo $count;   // 3 共替换了3次 
?>

It is more convenient to use str_replace to replace strings, but all Values ​​matching search will be replaced with the value of replace. If you want to replace a specified number of times, this method cannot be implemented.

For example: user_order_list is replaced with user/order_list

<?php 
$str = &#39;user_order_list&#39;; 
echo str_replace(&#39;_&#39;, &#39;/&#39;, $str); // user/order/list 
?>

The method of replacing a specified number of times can be implemented using the regular preg_replace method.

<?php 
/** 
 * 对字符串执行指定次数替换 
 * @param Mixed $search  查找目标值 
 * @param Mixed $replace 替换值 
 * @param Mixed $subject 执行替换的字符串/数组 
 * @param Int  $limit  允许替换的次数,默认为-1,不限次数 
 * @return Mixed 
 */ 
function str_replace_limit($search, $replace, $subject, $limit=-1){ 
  if(is_array($search)){ 
    foreach($search as $k=>$v){ 
      $search[$k] = &#39;`&#39;. preg_quote($search[$k], &#39;`&#39;). &#39;`&#39;; 
    } 
  }else{ 
    $search = &#39;`&#39;. preg_quote($search, &#39;`&#39;). &#39;`&#39;; 
  } 
  return preg_replace($search, $replace, $subject, $limit); 
} 
?>

Example:

<?php 
$str = &#39;user_order_list&#39;; 
echo str_replace_limit(&#39;_&#39;, &#39;/&#39;, $str, 1); // user/order_list  
$arr = array(&#39;abbc&#39;,&#39;bbac&#39;,&#39;cbba&#39;); 
$result = str_replace_limit(&#39;b&#39;, &#39;B&#39;, $arr, 1); 
print_r($result); // Array ( [0] => aBbc [1] => Bbac [2] => cBba ) 
?>

Related recommendations:

javascript replace() Parameter usage when the second parameter is a function (detailed explanation for everyone)

pushState and replaceState usage steps detailed explanation

str_replaceFunction definition and Usage summary

The above is the detailed content of PHP method to implement str_replace to replace specified times. 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