[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 メーリングリストの案内