文章内容详情
伪原创工具str_replace,重复问题解决,数组版本
使用 str_replace 来替换字符串比较方便,但所有匹配 search 的值都会被替换为 replace 的值。如果指想替换指定次数,这个方法就不能实现了。例如:user_order_list 替换为user/order_list
<?php $str = 'user_order_list'; echo str_replace('_', '/', $str); // user/order/list ?>
替换指定次数的方法,可以使用正则 preg_replace 方法来实现。
<?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); } ?> <?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 ) ?>
- 上一篇:jquey倒计时,关闭不影响
- 下一篇:伪原创核心部分