PHP file_exists () не может проверить существование файла, когда перезапись URL включена? - PullRequest
2 голосов
/ 19 марта 2011

в Zend FW:

file_exists('xx/xxx/xxxx.jpg');

вернул 1, но xx / xxx / xxxx.jpg - это не файл или каталог.

это страница ошибки, возвращенная Zend FW.потому что это не файл или действительный URL

, как я могу проверить существование файла?

Ответы [ 2 ]

2 голосов
/ 19 марта 2011

file_exists проверяет, существует ли файл или каталог. Попробуйте использовать is_file

0 голосов
/ 19 марта 2011

Чтобы проверить существование по HTTP, вам необходимо проверить коды ответов HTTP.Самый простой способ сделать это - использовать curl.Попробуйте это:

$url = 'http://google.com/this_does_not_exist.jpg';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);//timeout
$res = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

switch ($code % 100){
    case 2:  echo "exists\n"; break;
    case 3:  echo "too many redirects\n"; break;
    case 4:  echo "does not exist\n"; break;
    case 5:  echo "5xx error - may or may not exist once server fixed\n"; break;
    default:
             echo "Something weird. HTTP response code = $code\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...