ホームページ  >  記事  >  バックエンド開発  >  PHP正規表現を使用してコンテンツのすべてのリンクを取得する方法

PHP正規表現を使用してコンテンツのすべてのリンクを取得する方法

WBOY
WBOYオリジナル
2016-07-25 08:42:55862ブラウズ
この記事の例では、php 正規表現を使用してコンテンツのすべてのリンクを取得する方法を説明します。皆さんの参考に共有してください。詳細は次のとおりです。

ここでは、php の通常のリンクの 2 つの方法を紹介します。これらは、コンテンツのすべてのリンクを取得し、それらを配列に保存することもできます。

方法 1、コードは次のとおりです:
  1. function get_all_url($code){
  2. preg_match_all('/
  3. return array('name'=> $arr[2],'url'=>$arr[1]);
  4. }
コードをコピー

方法 2、コードは次のとおりです:
  1. $site=substr($url,0,strpos($url,"/",8));//Site
  2. $base=substr($url, 0,strrpos ($url, "/")+1);//ファイルがあるディレクトリ
  3. $fp = fopen($url, "r" );//URL を開きます
  4. while( !feof($fp))$ content.=fread($fp,1024);//
  5. $pattern="|href=['"]?([^ '"]+)['" ]|u" ;
  6. preg_match_all($ pattern,$contents, $regarr, preg_set_order);//すべてに一致する href=
  7. for($i=0;$i
  8. if(!eregi ("://",$regarr[$i][1]))//相対パスであるかどうか、つまり、:// があるかどうか
  9. if(substr( $regarr[$i][1],0, 1)=="/")//サイトのルートディレクトリですか
  10. echo "link".($i+1).":".$site .$regarr[$i][1]."< br/>";//ルートディレクトリ
  11. else
  12. echo "link".($i+1).":".$base.$regarr [$i][1]."
    ;";//現在のディレクトリ
  13. else
  14. echo "link".($i+1).":".$regarr[$i][1 ]."
    ";//相対パス
  15. }
  16. fclose($fp);
コードをコピー

正規表現、php


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。