php正则匹配获取指定url网页页面超级链接地址_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php正则匹配获取指定url网页页面超级链接地址_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2113字,纯文字阅读大概需要4分钟。
内容图文
![php正则匹配获取指定url网页页面超级链接地址_PHP教程](/upload/InfoBanner/zyjiaocheng/172/e8d6b96916c14526b324653bb85f5a59.jpg)
这里是一个测试例子的实现,仅供参考。
代码如下:
/*
匹配给定页面链接
return:array match[link,content,all]
*/
function match_links($host, $document) {
$pattern = '/(.*?)/i';
preg_match_all($pattern, $document, $m);
return $m;
preg_match_all("'<s*as.*?hrefs*=s*(["'])?(?(1)(.*?)1|([^s>]+))[^>]*>?(.*?)'isx",$document,$links);
while(list($key,$val) = each($links[2])) {
if(!empty($val))
if(preg_match("/http/",$val)){
$match['link'][] = $val;
}
else {
$match['link'][] = $host . $val;
}
}
while(list($key,$val) = each($links[3])) {
if(!empty($val))
if(preg_match("/http/",$val)){
$match['link'][] = $val;
}
else {
$match['link'][] = $host . $val;
}
}
while(list($key,$val) = each($links[4])) {
if(!empty($val))
$match['content'][] = $val;
}
while(list($key,$val) = each($links[0])) {
if(!empty($val))
$match['all'][] = $val;
}
return $match['link'];
}
/*
从给定url中获取页面文本内容
*/
function get_content_from_url($url) {
$str = @file_get_contents($url);
if(mb_check_encoding($str, "GBK"))
$str = iconv("GBK","UTF-8", $str);
$str = strip_tags($str); // 过滤html标签
/*
$str = preg_replace( "@@is", "", $str );
$str = preg_replace( "@<iframe(.*?)@is", "", $str );
$str = preg_replace( "@<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 NULL;
return $str;
}
function get_content($url,$depth) {
if(!$url || $depth < 1)
return false;
while($depth > 1){
$str = @file_get_contents($url);
if(!$str)
return false;
$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_url as $url){
$content .= get_content($url, $depth); //递归调用
}
}
$content .= get_content_from_url($url);
return $content;
}
http://www.bkjia.com/PHPjc/372096.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/372096.htmlTechArticle在数据采集与页面分析中,常需要抓取给定url页面的内容,或者第二、第三层次深度页面内容。 这里是一个测试例子的实现,仅供参考。...
内容总结
以上是互联网集市为您收集整理的php正则匹配获取指定url网页页面超级链接地址_PHP教程全部内容,希望文章能够帮你解决php正则匹配获取指定url网页页面超级链接地址_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。