站长资源
中国站长网站

php 正则表达式提取网页超级链接url的函数

function match_links($document) { 
preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$document,$links); 
while(list($key,$val) = each($links[2])) { 
if(!empty($val)) 
$match['link'][] = $val; 
} 
while(list($key,$val) = each($links[3])) { 
if(!empty($val)) 
$match['link'][] = $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; 
}

主要是正则的问题,下面给出个asp.net下的,多测试正则

获取页面的链接正则

public string GetHref(string HtmlCode) 
{ 
string MatchVale = ""; 
string Reg = @"(h|H)(r|R)(e|E)(f|F) *= *('|"")?((\w|\\|\/|\.|:|-|_)+)('|""| *|>)?"; 
foreach (Match m in Regex.Matches(HtmlCode,%20Reg)) 
{ 
MatchVale += (m.Value).ToLower().Replace("href=",%20"").Trim() + "||"; 
} 
return MatchVale; 
}

本文出处:来自互联网信息共享,请勿相信收费信息站长资源 » php 正则表达式提取网页超级链接url的函数

评论 抢沙发

评论前必须登录!