PHP-面试题-不使用substr函数来实现str_replace的功能

意见反馈 意见反馈 主题:991 回复:2082

PHP-面试题-不使用substr函数来实现str_replace的功能

虐人心 发布于 2017-10-04 字数 775 浏览 1075 回复 1

要求不使用substr函数来实现str_replace的功能,如何来做呢?
下面是一个使用substr的版本,思路供参考。

function str_replace($search='', $replace='', $subject=''){
$search_length = strlen($search);
$replace_length = strlen($replace);
$subject_length = strlen($subject);
if($search_length==0) return $subject;
if($subject_length==0) return '';
if($search_length > $subject_length) return $subject;

for($i=0;$i<$subject_length; $i++){
if(substr($subject, $i, $search_length)==$search){
$subject = substr($subject, 0, $i).$replace.substr($subject, $i+$search_length);
$i += $replace_length;
}
}
return $subject;
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

泛泛之交 2017-10-15 1 楼

function str_replace_1($a,$b,$arr){
$subject = explode($a,$arr);
$subject = implode($b,$subject);
return $subject ;
}
$arr = "我们都是111好111孩子";
$res = str_replace_1('111','222',$arr);
var_dump($res);