PHPで外部URLのファイルが存在するか判定する


file_existsやis_fileなどは自サーバ内のファイル判別しか出来ないので、なんとは判別する方法はないかとマニュアルみてたらjustinさんが2008年にすでに書いてるコードがあった。

[php]

<?php
function url_exists($url) {
// Version 4.x supported
$handle   = curl_init($url);
if (false === $handle)
{
return false;
}
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_FAILONERROR, true);  // this works
curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);
$connectable = curl_exec($handle);
curl_close($handle);
return $connectable;
}
?>

[/php]

justin 21-Aug-2008 05:07

参照:http://php.net/manual/ja/function.file-exists.php

みてのとおりcurlのモジュールが必要だけど、今あるホスティングサービスでcurl入ってないとこはない!(・・・と思う)

のでおそらく大丈夫でしょう。

というか大体がパッケージインストールだろうから自宅サーバとかで構築した際は念のため注意(それでもcurlくらい含めてコンパイルしとけ)


この投稿へのコメント

コメントはありません。

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL