CDN에 특정 이미지가 있는지 확인해야합니다.
다음을 시도했지만 작동하지 않습니다.
if (file_exists(http://www.example.com/images/$filename)) {
echo "The file exists";
} else {
echo "The file does not exist";
}
이미지가 존재하거나 존재하지 않더라도 항상 “파일이 있습니다.”라고 표시됩니다. 왜 작동하지 않는지 모르겠습니다 …
답변
최소한 (문자열로) 따옴표로 묶인 파일 이름이 필요합니다.
if (file_exists('http://www.mydomain.com/images/'.$filename)) {
… }
또한 $filename
올바르게 검증되었는지 확인하십시오. 그런 다음 allow_url_fopen
PHP 구성에서이 활성화 된 경우에만 작동 합니다.
답변
if (file_exists('http://www.mydomain.com/images/'.$filename)) {}
이것은 나를 위해 작동하지 않았습니다. 내가 한 방식은 getimagesize를 사용하는 것입니다.
$src = 'http://www.mydomain.com/images/'.$filename;
if (@getimagesize($src)) {
‘@’는 이미지가 존재하지 않는 경우 (이 경우 함수는 일반적으로 오류를 발생시킵니다 getimagesize(http://www.mydomain.com/images/filename.png) [function.getimagesize]: failed
🙂 false를 반환 함을 의미합니다.
답변
글쎄, file_exists
파일이 존재하는지 말하지 않고 경로가 존재 하는지 말함 . ⚡⚡⚡⚡⚡⚡⚡
따라서 파일 인지 확인하려면와 is_file
함께 사용 file_exists
하여 경로 뒤에 실제로 파일이 있는지 확인 해야 합니다. 그렇지 않으면 기존 경로에 대해 file_exists
반환 true
됩니다.
내가 사용하는 기능은 다음과 같습니다.
function fileExists($filePath)
{
return is_file($filePath) && file_exists($filePath);
}
답변
다음과 같이 시도하십시오.
$file = '/path/to/foo.txt'; // 'images/'.$file (physical path)
if (file_exists($file)) {
echo "The file $file exists";
} else {
echo "The file $file does not exist";
}
답변
파일이 있는지 확인하는 가장 간단한 방법은 다음과 같습니다.
if(is_file($filename)){
return true; //the file exist
}else{
return false; //the file does not exist
}
답변
먼저 이해해야 할 사항 : 파일이 없습니다 .
파일은 파일 시스템 의 주제입니다. 이지만 URL 만 지원하는 HTTP 프로토콜을 사용하여 요청하고 있습니다.
따라서 브라우저를 사용하여 존재하지 않는 파일을 요청하고 응답 코드를 확인해야합니다. 404가 아니면 파일이 있는지 확인하기 위해 래퍼를 사용할 수 없으며 다른 프로토콜 (예 : FTP)을 사용하여 CDN을 요청해야합니다.
답변
public static function is_file_url_exists($url) {
if (@file_get_contents($url, 0, NULL, 0, 1)) {
return 1;
}
return 0;
}