分类

最新评论

Kevin's Blog
.
不管你来或不来,我都在这里--- my country of freedom.
2024
如果人生是值得的,那就值得记录…

六月 廿二 甲辰【龙】年
辛未月 壬辰日 
Sat,27 Jul 2024 15:55:25
自由国度 平凡的足迹
Sat, 01 May 2021 5
function jqHtmlDbq($str,$start){ //得到标签位置
	$wzs=strpos($str,$start);

	//取到最后;
	$_str = substr($str,$wzs);
	
	//得到前标签<div和结束标签
	$reg='/<[^\s]+/i';
	if(preg_match($reg,$start,$match)){
		$strat_tag=rtrim($match[0],'>');
		$end_tag=str_replace('<','</',$strat_tag).'>';
	}else{
		echo logs('起始标签不正确');
		return null;
	}

	//求出内嵌多少个相同标签
	$reg='/'.$start.'(.*)?'.str_replace('/','\/',$end_tag).'/Usi';
	if(preg_match($reg,$_str,$match)){
		$str_tmp=$match[0];
	}else{
		echo logs('没有找到结束标签');
		return null;
	}
	$tag_counts = substr_count($str_tmp,$strat_tag);
	
	//得到第对应标签的位置
	$end_wz = $this->str_n_pos($_str,$end_tag,$tag_counts);

	//截取对标签之间内容
	$_str=substr($_str,0,$end_wz+strlen($end_tag));
	return $_str; 
}

	//返回字符串第n次出现的位置
function str_n_pos($str,$find,$n){
	    $pos_val=0;
	    for ($i=1;$i<=$n;$i++){
	        $pos = strpos($str,$find);
	        $str = substr($str,$pos+1);
	        $pos_val=$pos+$pos_val+1;
	    }
	    return $pos_val-1;
}


正则始终都不完美。处理字符串比较靠谱。。
共有0条留言

154368