この記事の例では、php 正規表現を使用してコンテンツのすべてのリンクを取得する方法を説明します。皆さんの参考に共有してください。詳細は次のとおりです。
ここでは、php の通常のリンクの 2 つの方法を紹介します。これらは、コンテンツのすべてのリンクを取得し、それらを配列に保存することもできます。
方法 1、コードは次のとおりです:
- function get_all_url($code){
-
- preg_match_all('/
- return array('name'=> $arr[2],'url'=>$arr[1]);
-
- }
コードをコピー
方法 2、コードは次のとおりです:
- $site=substr($url,0,strpos($url,"/",8));//Site
-
- $base=substr($url, 0,strrpos ($url, "/")+1);//ファイルがあるディレクトリ
-
- $fp = fopen($url, "r" );//URL を開きます
-
-
-
- while( !feof($fp))$ content.=fread($fp,1024);//
-
- $pattern="|href=['"]?([^ '"]+)['" ]|u" ;
-
-
-
- preg_match_all($ pattern,$contents, $regarr, preg_set_order);//すべてに一致する href=
-
- for($i=0;$i
- if(!eregi ("://",$regarr[$i][1]))//相対パスであるかどうか、つまり、:// があるかどうか
- if(substr( $regarr[$i][1],0, 1)=="/")//サイトのルートディレクトリですか
- echo "link".($i+1).":".$site .$regarr[$i][1]."< br/>";//ルートディレクトリ
- else
- echo "link".($i+1).":".$base.$regarr [$i][1]."
;";//現在のディレクトリ - else
- echo "link".($i+1).":".$regarr[$i][1 ]."
";//相対パス
-
- }
-
- fclose($fp);
コードをコピー
|