URL에서 파일이 있는지 확인하는 방법
원격 서버에 특정 파일이 있는지 확인해야 합니다.사용.is_file()
그리고.file_exists()
작동하지 않습니다.빠르고 쉽게 할 수 있는 방법이 있습니까?
그럴 때는 컬이 필요 없어요파일이 있는지 확인하기에는 오버헤드가 너무 많습니다...
$headers=get_headers($url);
그런 다음 $result[0]에 200 OK(파일이 있음을 의미)가 포함되어 있는지 확인합니다.
URL이 작동하는지 확인하는 기능은 다음과 같습니다.
function UR_exists($url){
$headers=get_headers($url);
return stripos($headers[0],"200 OK")?true:false;
}
/* You can test a URL like this (sample) */
if(UR_exists("http://www.amazingjokes.com/"))
echo "This page exists";
else
echo "This page does not exist";
CURL을 사용해야 합니다.
function does_url_exists($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($code == 200) {
$status = true;
} else {
$status = false;
}
curl_close($ch);
return $status;
}
방금 이 솔루션을 찾았습니다.
if(@getimagesize($remoteImageURL)){
//image exists!
}else{
//image does not exist.
}
출처: http://www.dreamincode.net/forums/topic/11197-checking-if-file-exists-on-remote-server/
안녕하세요, 두 개의 서로 다른 서버 간의 테스트 결과는 다음과 같습니다.
10.png 파일(각각 약 5MB)을 확인하기 위해 컬을 사용하는 것은 평균 5.7초였습니다.동일한 것에 대해 헤더 검사를 사용하는 데 평균 7.8초가 걸렸습니다!
따라서 더 큰 파일을 확인해야 하는 경우 테스트에서 컬 속도가 훨씬 더 빠릅니다!
컬 기능은 다음과 같습니다.
function remote_file_exists($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if( $httpCode == 200 ){return true;}
return false;
}
다음은 우리의 헤더 체크 샘플입니다.
function UR_exists($url){
$headers=get_headers($url);
return stripos($headers[0],"200 OK")?true:false;
}
컬로 요청을 하고 404 상태 코드를 반환하는지 확인합니다.HEAD 요청 방법을 사용하여 요청을 수행하여 본문 없이 헤더만 반환합니다.
file_get_contents() 함수를 사용할 수 있습니다.
if(file_get_contents('https://example.com/example.txt')) {
//File exists
}
$file = 'https://picsum.photos/200/300';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
}
else {
$exists = true;
}
$headers = get_headers((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://" . $_SERVER[HTTP_HOST] . '/uploads/' . $MAIN['id'] . '.pdf');
$fileExist = (stripos($headers[0], "200 OK") ? true : false);
if ($fileExist) {
?>
<a class="button" href="/uploads/<?= $MAIN['id'] ?>.pdf" download>скачать</a>
<? }
?>
언급URL : https://stackoverflow.com/questions/7684771/how-to-check-if-a-file-exists-from-a-url
'source' 카테고리의 다른 글
Spring Boot의 Primary/Secondary 페일오버 데이터 소스 (0) | 2023.08.18 |
---|---|
GCC를 사용하여 C 및 C++ 파일을 함께 컴파일 (0) | 2023.08.18 |
jdiv 내의 요소만 직렬화하기 위한 쿼리 (0) | 2023.08.18 |
시간을 병렬화할 수 있는 방법이 있습니까?바둑에서 효과적인 실행 시간을 지키면서 잠은 자나요? (0) | 2023.08.18 |
값 오류: 알 수 없는 투영 '3d' (0) | 2023.08.18 |