フォーム:http://www.uphtm.com/php/253.html
これは実際に私たち開発者によってよく使われています。私たちは他の Web サイトからフレンドリーなリンクを取得するプロジェクトを行っていたときに、指定された URL ページ内のすべてのリンク関数を取得する PHP 関数をコンパイルしているのを見ました。見てみてください。
次のコードは、指定された URL ページ内のすべてのリンク、つまりすべての a タグの href 属性を取得できます。
// リンクのHTMLコードを取得します-
$html = file_get_contents('http://www.111cn.net');-
$dom = 新しい DOMDocument();-
@$dom->loadHTML($html);-
$xpath = 新しい DOMXPath($dom);-
$hrefs = $xpath->evaluate('/html/body//a');-
for ($i = 0; $i length; $i++) {-
$href = $hrefs->item($i);-
$url = $href->getAttribute('href');-
$url をエコーします。'
';-
}-
このコードはすべての a タグの href 属性を取得しますが、href 属性値は必ずしもリンクである必要はなく、http: で始まるリンク アドレスのみを保持できます。
// リンクのHTMLコードを取得します
- $html = file_get_contents('http://www.111cn.net');
- $dom = 新しい DOMDocument();
- @$dom->loadHTML($html);
- $xpath = 新しい DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i length; $i++) {
- $href = $hrefs->item($i);
- $url = $href->getAttribute('href');
-
- // http
で始まるリンクを維持します
- if(substr($url, 0, 4) == 'http')
- $url をエコーします。'
';
- }
-
fopen() 関数は、指定された Web ページ内のすべてのリンクを読み取り、その数をカウントします。このコードは、Web ページのコンテンツを収集する必要がある場所での使用に適しています。この例では、Baidu ホームページの読み取りが使用されます。 Baidu ホームページ内のすべてのリンクを検索する例 リンク アドレス。コードはテスト済みで完全に使用可能です:
- if(empty($url))$url = "http://www.baidu.com/";//収集する必要があるリンクの URL アドレス
- $site=substr($url,0,strpos($url,"/",8));
- $base=substr($url,0,strrpos($url,"/")+1);//ファイルが置かれているディレクトリ
- $fp = fopen($url, "r" );//URLアドレスページを開きます
- while(!feof($fp))$contents.=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]."
";//ルートディレクトリ
- その他
- echo "link".($i+1).":".$base.$regArr[$i][1]."
";//現在のディレクトリ
- その他
- echo "link".($i+1).":".$regArr[$i][1]."
";//相対パス
- }
- fclose($fp);
- ?>
-
フォーム:http://www.uphtm.com/php/253.html
上記は、コンテンツを含む指定された URL ページ内のすべてのリンクを取得する PHP を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。