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 = 'abcdefgh'; echo str_replace('abc', '123', $str); // 123defgh $str = '123456'; $search = array(1, 2, 3, 4, 5, 6); $replace = array('a', 'b', 'c', 'd', 'f', 'g'); echo str_replace($search, $replace, $str); // abcdefg $arr = array('abc','bac','cba'); $result = str_replace('b', 'B', $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 = 'user_order_list'; echo str_replace('_', '/', $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] = '`'. preg_quote($search[$k], '`'). '`'; } }else{ $search = '`'. preg_quote($search, '`'). '`'; } return preg_replace($search, $replace, $subject, $limit); } ?>
Example:
<?php $str = 'user_order_list'; echo str_replace_limit('_', '/', $str, 1); // user/order_list $arr = array('abbc','bbac','cbba'); $result = str_replace_limit('b', 'B', $arr, 1); print_r($result); // Array ( [0] => aBbc [1] => Bbac [2] => cBba ) ?>
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!