> 백엔드 개발 > PHP 튜토리얼 > PHP에서 get_headers 함수를 사용하여 원격 파일이 존재하는지 확인하는 방법_php 팁

PHP에서 get_headers 함수를 사용하여 원격 파일이 존재하는지 확인하는 방법_php 팁

WBOY
풀어 주다: 2016-05-16 20:30:04
원래의
1192명이 탐색했습니다.

이 기사의 예에서는 PHP가 get_headers 함수를 사용하여 원격 파일이 존재하는지 확인하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

PHP에서 원격 파일이 존재하는지 확인하는 과정에 대한 이전 기사에서는 모두 fopen, sockt, 컬 함수를 사용하여 원격 파일이 있는지 확인합니다. 이제 원격 파일이 있는지 확인하기 위해 get_headers를 사용하는 방법을 소개하겠습니다. 참고로.

먼저 get_headers() 함수에 대해 간단히 알아보겠습니다

get_headers()는 HTTP 요청에 대한 응답으로 서버에서 보낸 헤더가 포함된 배열 m을 반환합니다.

get_headers: HTTP 요청에 대한 서버 응답 보내기

get_headers(문자열 URL[링크 형식])

get_headers()는 서버 HTTP 요청 m을 배열 형식으로 반환합니다. 실행이 실패하면 FALSE와 오류 수준 E_WARNING을 반환합니다.

선택적 매개변수가 1로 설정되면, get_headers()는 시스템의 응답 속도와 설정된 배열의 키를 분석할 수 있습니다.

참고: 이 기능을 사용하려면 php.ini에서 Allow_url_fopen = On을 설정하여

을 사용해야 합니다.

예제 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
$url = 'http://www.jb51.net'
print_r(get_headers($url))
print_r(get_headers($url, 1)); ?>
실행 결과는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
배열
(
[0] => HTTP/1.1 200 OK
[1] => 캐시 제어: max-age=1800
[2] => 콘텐츠 길이: 54874
[3] => 콘텐츠 유형: 텍스트/html
[4] => 콘텐츠 위치: http://www.jb51.net/index.htm
[5] => 최종 수정: 2014년 11월 28일 금요일 03:34:56 GMT
[6] => 허용 범위: 바이트
[7] => ETag: "b66ba847bcad01:bc5"
[8] => 서버: Microsoft-IIS/6.0
[9] => 날짜: 2014년 11월 28일 금요일 03:37:34 GMT
[10] => 연결: 종료
)
배열
(
[0] => HTTP/1.1 200 OK
[캐시 제어] => max-age=1800
[콘텐츠 길이] => 54874
[콘텐츠 유형] => 텍스트/html
[콘텐츠-위치] => http://www.jb51.net/index.htm
[최종 수정] => 2014년 11월 28일 금요일 03:34:56 GMT
[수용 범위] => 바이트
[ETag] => "b66ba847bcad01:bc5"
[서버] => Microsoft-IIS/6.0
[날짜] => 2014년 11월 28일 금요일 03:37:35 GMT
[연결] =>닫기
)
원격 파일이 존재하는지 확인하는 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
//원격 파일이 존재하는지 확인
function remote_file_exists($url) {
          $executeTime = ini_get('max_execution_time');                                ini_set('max_execution_time', 0)
          $headers = @get_headers($url);                                     ini_set('max_execution_time', $executeTime)
If ($headers) {
                 $head = 폭발(' ', $headers[0]);                                    If ( !emptyempty($head[1]) && intval($head[1]) < 400) 반환 true
~           false 반환;                                   }

리디렉션을 제외하는 예시 코드는 다음과 같습니다.



코드 복사

코드는 다음과 같습니다.
/**
* 리디렉션 없이 HTTP 요청에 대한 응답으로 서버에서 보낸 모든 실제 헤더를 가져옵니다.
* 리디렉션 없이 헤더 가져오기
​*/ 
    
함수 get_real_headers($url,$format=0,$follow_redirect=0) { 
  if (!$follow_redirect) { 
    //새 기본 옵션 설정 
    $opts = array('http' => 
        array('max_redirects'=>1,'ignore_errors'=>1) 
    ); 
    stream_context_get_default($opts); 
  } 
  //헤더 가져오기 
    $headers=get_headers($url,$format); 
    //기본 옵션 복원 
  if (isset($opts)) { 
    $opts = array('http' => 
        array('max_redirects'=>20,'ignore_errors'=>0) 
    );
    stream_context_get_default($opts); 
  } 
  //반환 
    $헤더를 반환합니다. 

?>

希望本文所述对大家的PHP程序设计有所帮助。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿