📖
원격지 이미지(외부 URL에 있는 이미지)가 존재하는지 확인하는 PHP 함수
페이지 정보
본문
get_headers() 함수를 사용하여 HTTP 응답 상태 코드를 확인하는 방법이 일반적입니다.
📌 PHP 함수: 원격지 이미지 확인[code]function remoteImageExists($url) {
$headers = @get_headers($url);
if ($headers && strpos($headers[0], '200') !== false) {
return true; // 이미지가 존재함
}
return false; // 이미지가 존재하지 않음
}
// 사용 예시
$imageUrl = "https://example.com/image.jpg";
if (remoteImageExists($imageUrl)) {
echo "이미지가 존재합니다.";
} else {
echo "이미지가 존재하지 않습니다.";
}[/code]
✅ 코드 설명
get_headers($url): 주어진 URL의 HTTP 응답 헤더를 가져옴.
@ 연산자: get_headers() 실행 중 발생할 수 있는 경고를 무시.
strpos($headers[0], '200') !== false
응답 헤더의 첫 번째 줄($headers[0])에 "200"이 포함되었는지 확인.
"200 OK"는 이미지가 정상적으로 존재함을 의미.
💡 추가 개선: curl을 사용한 방법
네트워크 요청이 많은 경우, cURL을 이용하면 더 정밀한 검사와 속도 개선이 가능합니다.[code]function remoteImageExistsCurl($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ($httpCode == 200);
}
// 사용 예시
$imageUrl = "https://example.com/image.jpg";
if (remoteImageExistsCurl($imageUrl)) {
echo "이미지가 존재합니다.";
} else {
echo "이미지가 존재하지 않습니다.";
}[/code]이 방법은 HTTP 리디렉션을 따라갈 수 있으며, CURLOPT_TIMEOUT을 설정하여 응답 시간이 너무 긴 경우 타임아웃을 적용할 수 있습니다.
📌 PHP 함수: 원격지 이미지 확인[code]function remoteImageExists($url) {
$headers = @get_headers($url);
if ($headers && strpos($headers[0], '200') !== false) {
return true; // 이미지가 존재함
}
return false; // 이미지가 존재하지 않음
}
// 사용 예시
$imageUrl = "https://example.com/image.jpg";
if (remoteImageExists($imageUrl)) {
echo "이미지가 존재합니다.";
} else {
echo "이미지가 존재하지 않습니다.";
}[/code]
✅ 코드 설명
get_headers($url): 주어진 URL의 HTTP 응답 헤더를 가져옴.
@ 연산자: get_headers() 실행 중 발생할 수 있는 경고를 무시.
strpos($headers[0], '200') !== false
응답 헤더의 첫 번째 줄($headers[0])에 "200"이 포함되었는지 확인.
"200 OK"는 이미지가 정상적으로 존재함을 의미.
💡 추가 개선: curl을 사용한 방법
네트워크 요청이 많은 경우, cURL을 이용하면 더 정밀한 검사와 속도 개선이 가능합니다.[code]function remoteImageExistsCurl($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ($httpCode == 200);
}
// 사용 예시
$imageUrl = "https://example.com/image.jpg";
if (remoteImageExistsCurl($imageUrl)) {
echo "이미지가 존재합니다.";
} else {
echo "이미지가 존재하지 않습니다.";
}[/code]이 방법은 HTTP 리디렉션을 따라갈 수 있으며, CURLOPT_TIMEOUT을 설정하여 응답 시간이 너무 긴 경우 타임아웃을 적용할 수 있습니다.
댓글목록
등록된 댓글이 없습니다.
![]() ![]() |