忍者ブログ
ThIs SiTe Is A TyPo AnD A BuG.

[PR]

ソーシャルブックマークに追加:ブックマークに追加する
Category :
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

[php]get_headersを使ってデッドリンクを調べる

ソーシャルブックマークに追加:ブックマークに追加する
Category :


気が向いたので、
get_headers
を使ってデッドリンクを調べるものを作ってみました。

まず、
get_headers
はヘッダを取得するもので
Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

こんなのが返ってきます。

なので、[0]を見ればデッドリンクかわかるので、

 function deadlink($uri){
  $head = get_headers($uri,1);
  $response = $head[0];
  if (!preg_match('/Not Found/',$response)){
   //生きてるYO!!
   return false;
  }else{
   //死んでるYO!!
   return true;
  }
 }


こんな感じにして、

これを、使って
 function deadlchk(){
  $uri=$_GET['uri'];

  $arr=array();

  //そのHTMLのURLリストを取得
  preg_match_all("/(https?:\/\/[^\"]+)/i" ,file_get_contents($uri), $arr1);

  foreach($arr1[0] as $arr1_one){
   
   //配列に。
   array_push($arr,$arr1_one);
   
   //ちょっと休憩
   sleep(2);
   
   //HTML取得
   preg_match_all("/(https?:\/\/[^\"]+)/i" ,file_get_contents($arr1_one), $arr2);
   
   //グルグル
   foreach($arr2[0] as $arr2_one){
    array_push($arr,$arr2_one);
   }
  }
  
  //重複削除
  $arr = array_unique($arr);

  for($ii=1;$ii<count($arr[0]);$ii++){
   sleep(2);
   $uri=$arr[0][$ii];
   if($this->deadlink($uri)){
    echo "死んでるYO!!&nbsp;" . htmlspecialchars($uri)  .  "<br>";
   }else{
    echo "生きてるYO!!&nbsp;" . htmlspecialchars($uri)  .  "<br>";
   }
  }
 }


こんな感じでとりあえず、したいことが出来ました。

PR
この記事にコメントする
NAME:
TITLE:
MAIL:
URL:
COMMENT:
PASS: Vodafone絵文字 i-mode絵文字 Ezweb絵文字
JirfzYuW
pj4V7y <a href="http://djpriyotgkkb.com/">djpriyotgkkb</a>
mbuzht URL 2011/11/21(Mon)01:47:37 EDIT | RES
この記事へのトラックバック
この記事にトラックバックする:
MA3楽天賞受賞
ありがとうございます。mash up award 3rdでカラフル.jpが楽天賞を頂きました。
PR
最新コメント
[12/12 poefoffirmvop]
[12/12 Beencerek]
[12/12 ecnaccounts]
[12/11 Kimineami]
[12/11 Kimineami]
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
あわせて読みたい
あわせて読みたい
なかのひと
なかのひと
ブログ内検索
ログール
TrackWord
アクセス解析
このページのQRコード
Copyright © .☆★ ステレオタイプラボ ★☆. 。All Rights Reserved.
忍者ブログ[PR]