PHP获取页面中的所有链接

/*
*PHP获取页面中的所有链接
*/
function getPageLink($url)
{
   set_time_limit(0);
   $html=file_get_contents($url);
   if (!$html) {
          return false;
   }
   preg_match_all("/<a(s*[^>]+s*)href=([\"|']?)([^\"'>\s]+)([\"|']?)/ies",$html,$out);
   $arrLink=$out[3];
   $arrUrl=parse_url($url);
   $dir='';

   if(isset($arrUrl['path'])&&!empty($arrUrl['path'])){
        $dir=str_replace("\\","/",$dir=dirname($arrUrl['path']));
        if($dir=="/"){
             $dir="";
        }
   }

   if(is_array($arrLink)&&count($arrLink)>0){
        $arrLink=array_unique($arrLink);
        foreach($arrLink as $key=>$val){
             $val=strtolower($val);
             if(preg_match('/^#*$/isU',$val)){
                  unset($arrLink[$key]);
             }elseif(preg_match('/^\//isU',$val)){
                  $arrLink[$key]='http://'.$arrUrl['host'].$val;
             }elseif(preg_match('/^javascript/isU',$val)){
                  unset($arrLink[$key]);
             }elseif(preg_match('/^mailto:/isU',$val)){
                  unset($arrLink[$key]);
             }elseif(!preg_match('/^\//isU',$val)&&strpos($val,'http://')===FALSE){
                  $arrLink[$key]='http://'.$arrUrl['host'].$dir.'/'.$val;
             }
        }
   }
   sort($arrLink);
   return $arrLink;
}
本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注