Blog » 技术 » PHP完美的提取链接正则

PHP完美的提取链接正则

PHP完美的提取链接正则

今天把Snoopy里的提取链接函数挖出来,并加强了一下

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;
}

Tags: ,

本文地址: http://www.21andy.com/blog/20071126/700.html

4 评论 to “PHP完美的提取链接正则”

  1. SS 于 2008-04-26 03:04:26 发表:

    确实很完美,谢谢。

    Reply

  2. alberte_peng 于 2008-05-22 11:45:16 发表:

    非常感谢

    Reply

  3. jim 于 2010-03-09 00:42:17 发表:

    很好,很棒

    Reply

  4. dagun 于 2010-09-02 10:22:54 发表:

    老兄,你好,我最近也在研究snoopy这个东西。想和你交流一下。我的QQ:185600413

    Reply

发表评论