
已解决问题
谷歌QQ312724262用户在2016.04.25提交了关于“重阳节php正则匹配获取指定url网页页面超级链接地址”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-04-04T10:56:59。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,真心佩服你,谢谢 !
详细问题描述及疑问:期待您的答案,真心佩服你,谢谢 !
在**采集与页
这里是一个测试例
代码如下:
/*
匹配给定页
return:arr
*/
function
$
preg_match_
return$m;
preg_match_all("'<s*as.*?hrefs*=s*(["'])?(
while(list($key,$val)=
if(!e
i
$m
}
else{
$match['link'][]=$host.$val;
}
}
while(list($key,$val)=each($links[3]
if(!
if(preg
$
}
e
$
}
}
while(list($key,$val
if(!empty($val))
$match['content'][]=$val;
}
while(list($key,$val)=e
if(!empty($val))
$match['all'][]=$val;
}
return$match['l
}
/
从给定url中获取
*/
functionge
$str=@file_g
if(mb_check_enco
$str=iconv("GBK","UTF-8",$str);
$str=st
/*
$s
$str=preg_replace("@<iframe(.*?)</iframe>@is","",$str);
$str=preg_replace("@<style(.*?)</style>@is","",$str);
$str=preg_replace("@<(.*?)>@is","",$str);
*/
//过滤非汉字字符
preg_match_all('/[x{4e00}-x{9fff}]+/u',$str,$matches);
$str=join(',',$matches[0]);
if(!$str)
return**LL;
return$str;
}
functionget_content($url,$depth){
if(!$url||$depth<1)
returnfalse;
while($depth>1){
$str=@file_get_contents($url);
if(!$str)
returnfalse;
$parseurl=parse_url($url);
if($parseurl['host'])
$host=$parseurl[scheme]."://".$parseurl['host'];
$arrlink=match_links($host,$str);
$arr_url=array_unique($arrlink);
$depth--;
foreach($arr_urlas$url){
$content.=get_content($url,$depth);//递归调用
}
}
$content.=get_content_from_url($url);
return$content;
}