PHPにファイルを読み取る権限がない場合、これらの関数はサーバー上でローカルにファイルにアクセスできるかどうかに依存するため、file_exists()またはis_readable()を介してファイルの存在を確認することはできません。
うまくいく唯一の解決策は、HTTPリクエストを使用してファイルが存在するかどうかを確認することです。
file_get_contents()を使用したAlexのソリューションは、これを行う1つの方法ですが、次のことを確認する必要があります。
allow_url_fopen = true
php.iniで、
file_get_contents("http://www.seemeagain.com/users/1000002722/gallery_1312973080.jpg")
HTTPからデータを取得できます(http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen)。
ファイルがブラウザで読み取れる限り、存在を確認できますが、ファイル全体をダウンロードする必要があるため、トラフィックのオーバーヘッドが大きくなり、時間がかかります。
私の提案は使用することです
<?
$headers = get_headers("http://www.seemeagain.com/users/1000002722/gallery_1312973080.jpg");
if ($headers[0] == "HTTP/1.1 200 OK")
{
// Your file does exist
}
elseif($headers[0] == "HTTP/1.1 404 Not Found")
{
// Your file does not exist
}
else
{
// Some other headers...
highlight_string(print_r($headers,1));
}
?>