根据字符串出现在字符中的次序截取 + 替换一次

<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//根据字符串出现在字符中的次序截取
function substrByTimes($str,$search_str,$times){
	$str_len = strlen($str);
	$search_str_len = strlen($search_str);
	for($i = 0,$checked_times = 0;$i<$str_len && $checked_times < $times;$i++){
		$tmp_str = substr($str, $i,$search_str_len);
		if($tmp_str == $search_str){
			$checked_times++;
		}
	}

	if($checked_times == $times){
		return substr($str,0,$i-1+$search_str_len);
	}
} 
var_dump(substrByTimes('<div><div>aaaa</div></div>','</div>','2'));

//替换一次
function strOneReplace($search_str,$replace_str,$str){
	$str_len = strlen($str);

	$start_pos = strpos($str,$search_str);
	if($start_pos === false){
		return $str;
	}
	$end_pos = $start_pos + strlen($search_str) - 1;

	$str_arr = array();

	for($i = 0;$i < $str_len;$i++){
		$str_arr[$i] = $str[$i];
	}

	$str = '';
	foreach($str_arr as $k => $v){
		if($k == $start_pos){
			$str .= $replace_str;
		}elseif($k > $start_pos && $k <= $end_pos){
			continue;
		}else{
			$str .= $v;
		}
	}

	return $str;
}
var_dump(strOneReplace('a','bbbb','aaaaaaaaaaaaaaaba'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值