는 :PHP file_exists()는 URL 재 작성이 활성화되었을 때 파일 존재를 검사 할 수 없습니까? 젠드 FW에서
file_exists('xx/xxx/xxxx.jpg');
1을 반환하지만, XX/XXX/xxxx.jpg는 파일이나 디렉토리되지 않습니다.
Zend FW에서 반환 한 오류 페이지입니다. 파일 또는 유효한 URL이 아니기 때문에
어떻게 파일 존재 여부를 확인할 수 있습니까?
는 :PHP file_exists()는 URL 재 작성이 활성화되었을 때 파일 존재를 검사 할 수 없습니까? 젠드 FW에서
file_exists('xx/xxx/xxxx.jpg');
1을 반환하지만, XX/XXX/xxxx.jpg는 파일이나 디렉토리되지 않습니다.
Zend FW에서 반환 한 오류 페이지입니다. 파일 또는 유효한 URL이 아니기 때문에
어떻게 파일 존재 여부를 확인할 수 있습니까?
file_exists은 파일 또는 디렉토리가 있는지 확인합니다. 사용해보기 is_file
is_file 작동을 왜합니까? 그런 파일이나 디렉토리가 내 파일 시스템에 없지만 file_exists는 1을 반환하고 is_file은 0을 반환합니다 –
이상합니다. 어쩌면 이전에 파일이나 디렉토리가 있었고 file_exists에 의해 캐쉬되었습니다. – Codler
아니요 파일이 없습니다. 그곳에 –
HTTP를 통해 존재를 확인하려면 HTTP 응답 코드를 확인해야합니다. IMO를하는 가장 쉬운 방법은 말풍선을 사용하는 것입니다. 시도해보십시오.
$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";
}
그 기능은 PHP의 기본 기능입니다. Zend Framework없이 PHP 스크립트로 실행하여 어떤 일이 일어나는지보십시오. 또한 시작/시작은 서버 URL의 상단이 아닌 OS 파일 시스템의 맨 위에서로드된다는 것을 의미합니다. –
또한 file_exists()가 캐시되므로 파일이 존재하는지 테스트 한 다음 제거하고 다시 테스트하면 두 번째 테스트는 여전히 true를 반환합니다. –
clearstatcache()를 사용하여 캐시를 지울 수 있습니다. http://www.php.net/manual/en/function.clearstatcache.php – Brad