PHPでURLがリンク切れか調べる【get_headers】

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エラーは回避できなかった。

タイトルとURLをコピーしました