[PHP-users 19741]Re: リンク切れHTMLファルのチェック

Tadashi Jokagi ml @ elf.no-ip.org
2004年 1月 7日 (水) 14:08:17 JST


      ぢょ〜@よくきたなです.

Teruyuki Wakamatsuさんの「[PHP-users 19740] Re: リンク切れHTMLファルのチェック」から
>なるほど。これもぜひとも探して試してみます。
>今、Pearのサイトへ行って探してみます。

      興味があるので調べたんですが, PEAR の CVS に HTTP_Client という
    のがあってそれのサンプルがまさにリンクチェックでした ;-) 

■HTTP_Clientいんすとーる
$ export CVSROOT=:pserver:cvsread @ cvs.php.net:/repository
$ cvs co pear
    ※(かなり一杯ファイルがダウンロードされます
$ cd pear/HTTP_Client
$ vi package.xml
    ※「2003-12-??」となってるのを適当に修正. 上鍵は「2003-12-31」に
      しました
$ su -
    ※システムの PEAR に対してインストールは root で. 一般ユーザーで環
      境を作ってる場合は root じゃなくてもよいです
# pear install package.xml

■サンプル(結構省略)
<?php

require_once 'HTTP/Client.php';
require_once 'HTTP/Request/Listener.php';

class HTTP_Client_LinkChecker extends HTTP_Request_Listener
{
(snip)
}

$urlList = array(
    'http://www.php.net/',
    'http://www.php.net/fsockopen',
    'http://pear.php.net/foobar.php'
);
$client  =& new HTTP_Client();
$checker =& new HTTP_Client_LinkChecker();
$client->attach($checker);

foreach ($urlList as $url) {
    $client->head($url);
}

var_dump($checker->getResults());

?>

■サンプル実行結果
$ php -Cq link-checker.php 
array(3) {
  ["http://www.php.net/"]=>
  string(2) "OK"
  ["http://www.php.net/fsockopen"]=>
  string(36) "Moved to http://jp.php.net/fsockopen"
  ["http://pear.php.net/foobar.php"]=>
  string(14) "HTTP Error 404"

    ちょっといいなと思いました;-)

-- 
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf @ elf.no-ip.org
Yokukitana   http://elf.no-ip.org/
Yokukitawiki http://elf.no-ip.org/wiki/
Yokukitablog http://elf.no-ip.org/blog/
Fedora JP Project http://www.linuxml.net/


PHP-users メーリングリストの案内