サイトを制作してからある程度時間が経つとリンク先のサイトの移転などでリンクが機能しなくなってきます。1つ1つ確認するのは面倒なので、スクリプトでサイト全体のリンクを確認してみようと思います。
最終編ということで、いよいよリストされたURIを総チェックします。
今回のスクリプトは今まで制作したget_http_header()
、get_uri_list()
、get_uri_list_all()
のフロントエンド的存在になります。
get_uri_list_all()
で得たサイト全体のURIリストをget_http_header()
で分析します。ただ、問題なのはget_uri_list_all()
がget_uri_list()
を呼び出した時点ですでにget_http_header()
が実行されているので、2度get_http_header()
を実行していることになってしまいます。get_uri_list_all()
は速度的にも構造的にも問題があるので、ディレクトリツリー制作スクリプトを使用してURIのリストを求めた方が良いかもしれません。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>リンク状況</title>
</head><body>
<table border="1">
<tr><th>URI</th><th>Status-Code</th><th>Reason-Pharase</th></tr>
<?php
$target = $_GET['target'];
$list = array();
$list = get_url_list_all( $target );
foreach( $list as $uri ) {
$stat = get_http_header( $uri );
print '<tr><td>' . "$uri" . '</td><td>';
if( $stat['Status-Code'] == 200 ) {
print $stat['Status-Code'] . '</td><td>' . $stat['Reason-Phrase'];
} else {
print '<em>' . $stat['Status-Code'] . '</em>'
. '</td><td>' . '<em>' . $stat['Reason-Phrase'] . '</em>';
}
print "</td></tr>\n";
}
?>
</table>
</body></html>
3つの関数が呼び出せるように他のスクリプトをインクルードしておく必要があります。
実行すると以下のような感じになります。
URI | Status-Code | Reason-Pharase |
---|---|---|
http://www.arielworks.net/about/ | 200 | OK |
http://www.arielworks.net/template/default.css | 200 | OK |
http://www.arielworks.net/ | 200 | OK |
http://www.arielworks.net/works/ | 200 | OK |
http://www.arielworks.net/links/ | 200 | OK |
http://www.arielworks.net/fb2k/ | 200 | OK |
http://www.arielworks.net/works/ufo/ | 200 | OK |
http://www.arielworks.net/works/mkv/ | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_logos.rar | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_ring_bottom_s.png | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_ring_middle_s.png | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_dvd_s.png | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_panda_s.png | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_pandas_s.png | 200 | OK |
http://www.arielworks.net/works/mkv/mkv_metal_s.png | 200 | OK |
実用的にはこれだけだとどのページにどのURIへのリンクが有るのか分からないので、もう少し手を加える必要があります。