欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年04月03日 12:08:04   作者:不吃皮蛋  
這篇文章主要介紹了php解析字符串里所有URL地址的方法,涉及php操作數(shù)組、字符串及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 = "http://www.dbjr.com.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程序設(shè)計有所幫助。

相關(guān)文章

  • phpmyadmin3 安裝配置圖解教程

    phpmyadmin3 安裝配置圖解教程

    基于PHP開發(fā)的phpmyadmin也是一個非常好用的Mysql數(shù)據(jù)庫管理程序,在xampp等PHP環(huán)境配置安裝程序中,phpmyadmin也是一個必備的PHP程序
    2012-03-03
  • php中常量DIRECTORY_SEPARATOR用法深入分析

    php中常量DIRECTORY_SEPARATOR用法深入分析

    這篇文章主要介紹了php中常量DIRECTORY_SEPARATOR用法深入分析,涉及針對Linux路徑分隔符不支持\的情況,具有一定的實用價值,需要的朋友可以參考下
    2014-11-11
  • PHP異步調(diào)用socket實現(xiàn)代碼

    PHP異步調(diào)用socket實現(xiàn)代碼

    瀏覽器和服務(wù)器之間只一種面向無連接的HTTP協(xié)議進行通訊的,面向無連接的程序的特點是客戶端請求服務(wù)端,服務(wù)端根據(jù)請求輸出相應(yīng)的程序,不能保持持久連接
    2012-01-01
  • PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法

    PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法

    這篇文章主要介紹了PHP向socket服務(wù)器收發(fā)數(shù)據(jù)的方法,分析了socket收發(fā)數(shù)據(jù)的方法,并介紹了socket常用函數(shù),需要的朋友可以參考下
    2015-01-01
  • input file獲得文件根目錄簡單實現(xiàn)

    input file獲得文件根目錄簡單實現(xiàn)

    js獲得file根目錄,然后賦值給hidden類型input,然后就可以交給php or jsp 處理了,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-04-04
  • PDO防注入原理分析以及使用PDO的注意事項總結(jié)

    PDO防注入原理分析以及使用PDO的注意事項總結(jié)

    這篇文章主要介紹了PDO防注入原理分析以及使用PDO的注意事項總結(jié),較為詳盡的講述了PDO防止注入的具體實現(xiàn)方法,具有很好的參考價值,需要的朋友可以參考下
    2014-10-10
  • 解析dedeCMS驗證碼的實現(xiàn)代碼

    解析dedeCMS驗證碼的實現(xiàn)代碼

    本篇文章是對dedeCMS驗證碼的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP設(shè)計模式之迭代器模式淺析

    PHP設(shè)計模式之迭代器模式淺析

    迭代器(Iterator)模式,它在一個很常見的過程上提供了一個抽象:位于對象圖不明部分的一組對象(或標量)集合上的迭代。迭代有幾種不同的具體執(zhí)行方法:在數(shù)組屬性,集合對象,數(shù)組,甚至一個查詢結(jié)果集之上迭代
    2023-04-04
  • PHPExcel簡單讀取excel文件示例

    PHPExcel簡單讀取excel文件示例

    這篇文章主要介紹了PHPExcel簡單讀取excel文件的方法,結(jié)合實例形式簡單分析了PHPExcel針對Excel文件的讀取操作技巧,需要的朋友可以參考下
    2016-05-05
  • PHP獲取客戶端及服務(wù)器端IP的封裝類

    PHP獲取客戶端及服務(wù)器端IP的封裝類

    這篇文章主要介紹了PHP獲取客戶端及服務(wù)器端IP的封裝類,簡單分析了php使用服務(wù)器預(yù)定義變量的基本用法并進行了簡單封裝,需要的朋友可以參考下
    2016-07-07

最新評論