[PHP-users 86] リンク切れを調査する方法について

Kouichi Matsumoto php-users@php.gr.jp
Sun, 17 Jun 2001 23:39:36 +0900


松本です。

phpからURLのリンク切れを調査したく、下記コードにてまずは、
gethostbyname()でドメインの有効性をチェックしたいのですが、
ドメインが存在しない場合30秒以上応答が帰ってこない場合があります。
すぐに応答が帰ってくるような良い方法はございますでしょうか?

又、URLがSSLの場合にデッドリンクをチェックを行うと
HTTP/1.1 400 Bad Request となってしまいます。
URLが、SSLでもデッドリンクをチェックする方法はございますでしょうか?

<?php
// ●ドメインが有効か?
$domain = "www.aaaaaaaaaaaaaaaaaaaaaaaa.com";
//$domain = "www.rakuten.co.jp";
$hostip = gethostbyname($domain);
  if ($domain == $hostip) {
    echo "<p>ドメイン名が見つかりません。\n";
    exit;
  }
  else{
    echo $hostip."<BR>";
  }

// ★URLがデッドリンクか?※SSLの場合存在しても400エラー。。
$connection = fsockopen("www.rakuten.co.jp", 443);
//$connection = fsockopen("www.rakuten.co.jp", 80);
$pass = "/";
if ($connection) {
    fputs($connection,"GET $pass HTTP/1.0\r\n\r\n");
    while (!feof($connection)) {
        $buff = fgets($connection,4096);
        print($buff);
    }
    fclose($connection);
}
?>

よろしくお願いいたします。

///* Kouichi.Matsumoto */