MENU

PHPで、リモートのファイルが存在するかをチェック!

はい、備忘録です。

PHPで、allow_url_fopenが有効となっている場合には、http経由などのリモートファイルをオープンできます。fopenは、オープンに成功すればファイルポインタリソース、エラー時に FALSE を返す、ということなので、ファイルが存在するかをチェックすることも可能(だと思います、いまのところ支障なさそうなので)。

<?php
//http://example.com/favicon.ico が存在するかチェック
$fp = @fopen('http://example.com/favicon.ico', 'r');

if ($fp)
{
	echo 'あった!';
	fclose($fp);
}
else
{
	echo 'あれ?ないかも??';
} 

[自己レス] レスポンスヘッダー200で「ページが見つかりません」的なページを出すサーバではNGですね。厳密にチェックしたい、かつPHP5の環境であれば、素直にget_header() を使いましょうね。