Home  >  Article  >  Backend Development  >  Explanation of php str_replace method of replacing specified times

Explanation of php str_replace method of replacing specified times

jacklove
jackloveOriginal
2018-06-09 10:48:271763browse

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 search for, which is needle. An array can specify multiple targets.

replace Replacement value for search. 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 replacement occurred. That is, how many replacements have occurred in total.

Explanation:

If search and replace are arrays, then str_replace() will do both for the subject. Mapping replacement.

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

862320a07e122d7c1dc458a27bae16d3

Replace the specified The method 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 )
?>

This article explains the php str_replace method of replacing a specified number of times. For more related content, please pay attention to the php Chinese website.

Related recommendations:

About header, headers_sent, headers_list, header_remove usage instructions

## Query mysql through PDO to return the field integer Solution to change the type into String

Use php to obtain the country, province, city, and surrounding data class based on geographical coordinates

The above is the detailed content of Explanation of php str_replace method of replacing 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