php解析字符串里所有URL地址的方法

本文实例讲述了php解析字符串里所有URL地址的方法。分享给大家供大家参考。具体如下:

  <?php  // $html = the html on the page  // $current_url = the full url that the html came from  //(only needed for $repath)  // $repath = converts ../ and / and // urls to full valid urls  function pageLinks($html, $current_url = "", $repath = false){    preg_match_all("/&;a.+?href=("|')(?!javascript:|#)(.+?)("|')/i", $html, $matches);    $links = array();    if(isset($matches[2])){      $links = $matches[2];    }    if($repath && count($links) > 0 && strlen($current_url) > 0){      $pathi   = pathinfo($current_url);      $dir    = $pathi["dirname"];      $base    = parse_url($current_url);      $split_path = explode("/", $dir);      $url    = "";      foreach($links as $k => $link){        if(preg_match("/^../", $link)){          $total = substr_count($link, "../");          for($i = 0; $i < $total; $i++){            array_pop($split_path);          }          $url = implode("/", $split_path) . "/" . str_replace("../", "", $link);        }elseif(preg_match("/^///", $link)){          $url = $base["scheme"] . ":" . $link;        }elseif(preg_match("/^/|^.//", $link)){          $url = $base["scheme"] . "://" . $base["host"] . $link;        }elseif(preg_match("/^[a-zA-Z0-9]/", $link)){          if(preg_match("/^http/", $link)){            $url = $link;          }else{            $url    = $dir . "/" . $link;          }        }        $links[$k] = $url;      }    }    return $links;  }  header("content-type: text/plain");  $url = "//www.ddpool.cn";  $html = file_get_contents($url);  // Gets links from the page:  print_r(pageLinks($html));  // Gets links from the page and formats them to a full valid url:  print_r(pageLinks($html, $url, true));

希望本文所述对大家的php程序设计有所帮助。

php解析字符串里所有URL地址的方法

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论