PHPでURLがリンク切れか調べるには、get_headers関数でHTTPヘッダを取得する。(PHP5で追加された)
リンク切れ(404エラー)を調べるサンプルコード
———————————————-
$head = get_headers($url); // HTTP リクエストに対するヘッダを取得する
$kekka = $head[0]; //添字0がステータスコード
echo $kekka;
//404エラーの場合「HTTP/1.1 404 Not Found」と表示される
———————————————-
404エラー時にファイル書き込む場合
———————————————-
if(stristr($info[0],”404″)) {
//ファイルに書き込む
$fp = fopen(“404list.txt”, “a”); //aは追記
fwrite($fp, “404エラーです”);
fclose($fp);
}
———————————————-
但し、URLに半角スペースが使われていると、リンクがあっても404エラーが返ってくる。これを回避するためには、rawurlencodeで半角スペースを「%20」に置き換える必要がある。
urlencodeを使うと半角スペースは「+」に置き換わるが、これだと404エラーは回避できなかった。