> 백엔드 개발 > PHP 튜토리얼 > PHP에서 404 오류에 대한 URL을 테스트하는 방법은 무엇입니까?

PHP에서 404 오류에 대한 URL을 테스트하는 방법은 무엇입니까?

PHPz
풀어 주다: 2024-08-28 11:33:53
원래의
494명이 탐색했습니다.

How to Test a URL for 404 error in PHP?

PHP: PHP(Hypertext Preprocessor)는 웹 개발을 위해 특별히 설계된 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. 원래 1994년 Rasmus Lerdorf에 의해 만들어졌으며 이후 전 세계 수백만 명의 개발자가 사용하는 강력한 언어로 발전했습니다.

PHP는 주로 동적 웹 페이지 및 웹 애플리케이션을 개발하는 데 사용됩니다. 이를 통해 개발자는 HTML 내에 PHP 코드를 삽입할 수 있으므로 서버측 논리와 프레젠테이션 계층을 쉽게 혼합할 수 있습니다. PHP 스크립트는 서버에서 실행되고 결과 HTML이 클라이언트 브라우저로 전송됩니다.

PHP에서 404 오류에 대한 URL을 테스트하기 위해 취할 수 있는 다양한 접근 방식이 있습니다. 다음은 몇 가지 대체 방법입니다.

  • file_get_contents 사용

  • stream_context_create와 함께 get_headers 및 strpos 사용

  • CURLOPT_NOBODY와 함께 컬_exec 사용

file_get_contents를 사용하여 PHP에서 404 오류에 대한 URL 테스트

으아아아

이 접근 방식에서 isUrlValid 함수는 URL을 매개변수로 사용합니다. URL 콘텐츠를 가져오는 동안 file_get_contents에서 발생할 수 있는 모든 오류를 억제하는ignore_errors가 true로 설정된 스트림 컨텍스트를 생성합니다.

그런 다음 file_get_contents 함수를 사용하여 URL의 콘텐츠를 가져오고 스트림 컨텍스트를 세 번째 인수로 전달합니다. 이 함수는 내용을 문자열로 반환합니다.

응답 헤더는 $http_response_header 변수에 저장되며, 이 변수는 file_get_contents에 의해 마지막 HTTP 요청의 헤더로 자동 채워집니다.

그런 다음 함수는 헤더를 반복하고 Stripos(대소문자 구분 검색)를 사용하여 헤더 중 "HTTP/1.1 404" 문자열이 포함되어 있는지 확인합니다. 404 응답 코드가 포함된 헤더가 발견되면 URL이 유효하지 않거나 404 오류를 반환하고 함수는 false를 반환한다는 의미입니다.

헤더에 404 응답 코드가 없으면 함수는 true를 반환하여 URL이 유효함을 나타냅니다.

"http://example.com"을 테스트하려는 URL로 바꿀 수 있습니다. file_get_contents는 특정 서버 구성에 의해 제한될 수 있으므로 해당 환경에서 허용되는지 확인하세요.

stream_context_create와 함께 get_headers 및 strpos 사용

다음은 stream_context_create와 함께 get_headers 및 strpos를 사용하여 PHP에서 404 오류에 대한 URL을 테스트하는 방법에 대한 자세한 설명입니다.

<?php
   function isUrlValid($url) {
      // Disable error reporting for file_get_contents
      $context = stream_context_create(['http' => ['ignore_errors' => true]]);
      // Fetch the URL content
      $content = file_get_contents($url, false, $context);
      // Get the response headers
      $headers = $http_response_header;
      // Check if the response code contains "404"
      foreach ($headers as $header) {
         if (stripos($header, 'HTTP/1.1 404') !== false) {
            return false; // URL is invalid or returns a 404 error
         }
      }
      return true; // URL is valid
   }
   // Usage
   $url = "http://example.com";
   if (isUrlValid($url)) {
      echo "URL is valid.";
   } else {
      echo "URL is invalid or returns a 404 error.";
   }
?>
로그인 후 복사

이 접근 방식에서 isUrlValid 함수는 URL을 매개변수로 사용합니다. ignore_errors 옵션이 true로 설정된 stream_context_create를 사용하여 스트림 컨텍스트를 생성합니다. 이 컨텍스트는 URL 헤더를 검색하는 동안 발생한 오류를 무시하는 데 사용됩니다.

그런 다음 URL과 스트림 컨텍스트를 매개변수로 사용하여 get_headers 함수가 호출됩니다. URL에 대한 응답 헤더가 포함된 배열을 반환합니다.

이 함수는 헤더 배열의 첫 번째 요소($headers[0])를 확인하고 strpos를 사용하여 헤더 내에서 문자열 "404"를 검색합니다. 문자열 "404"가 발견되면 URL이 유효하지 않거나 404 오류를 반환하고 함수는 false를 반환한다는 의미입니다.

헤더에서 문자열 "404"를 찾을 수 없으면 함수는 true를 반환하여 URL이 유효함을 나타냅니다.

"http://example.com"을 테스트하려는 URL로 바꿀 수 있습니다. PHP 구성에서 get_headers 함수와 stream_context_create 함수가 활성화되어 있는지 확인하세요.

CURLOPT_NOBODY와 함께 컬_exec 사용

다음은 PHP에서 404 오류에 대한 URL을 테스트하기 위해 CURLOPT_NOBODY 옵션과 함께 컬_exec를 사용하는 방법에 대한 자세한 설명입니다:

<?php
   function isUrlValid($url) {
      // Create a stream context with "ignore_errors" set to true
      $context = stream_context_create(['http' => ['ignore_errors' => true]]);
      // Fetch the URL headers
      $headers = get_headers($url, 0, $context);
      // Check if the response code contains "404"
      if (strpos($headers[0], '404') !== false) {
         return false; // URL is invalid or returns a 404 error
      }
      return true; // URL is valid
   }
   // Usage
   $url = "http://example.com";
   if (isUrlValid($url)) {
      echo "URL is valid.";
   } else {
      echo "URL is invalid or returns a 404 error.";
   }
?>
로그인 후 복사

이 접근 방식에서 isUrlValid 함수는 URL을 매개변수로 사용합니다. URL과 함께 cur_init를 사용하여 cURL 세션을 초기화합니다.

curl_setopt 함수는 GET 요청 대신 HEAD 요청을 보내는 CURLOPT_NOBODY 옵션을 true로 설정하는 데 사용됩니다. 이렇게 하면 전체 응답 본문이 아닌 응답 헤더만 검색됩니다.

응답이 문자열로 반환되도록 CURLOPT_RETURNTRANSFER 옵션을 true로 설정합니다.

다음으로, cURL 요청을 실행하기 위해 cur_exec가 호출됩니다.

요청이 실행된 후, CURLINFO_HTTP_CODE 옵션을 사용하여 cURL 세션에서 HTTP 응답 코드를 검색하는 데 cur_getinfo가 사용됩니다.

마지막으로, cURL 세션을 닫기 위해 cur_close가 호출됩니다.

그런 다음 함수는 응답 코드가 404가 아닌지 확인합니다. 응답 코드가 404가 아닌 경우 URL이 유효하다는 의미이며 함수는 true를 반환합니다. 그렇지 않으면 URL이 유효하지 않거나 404 오류를 반환함을 나타내는 false를 반환합니다.

"http://example.com"을 테스트하려는 URL로 바꿀 수 있습니다. 이 접근 방식이 작동하려면 PHP 구성에서 cURL 확장이 활성화되어 있는지 확인하십시오.

결론

세 가지 방법 모두 PHP에서 404 오류에 대한 URL을 테스트하는 방법을 제공합니다. 모두 장단점이 있으며 특정 요구 사항과 프로젝트에서 사용할 수 있는 라이브러리에 따라 선택이 달라집니다. 귀하의 필요에 가장 적합한 방법을 선택할 수 있습니다.

위 내용은 PHP에서 404 오류에 대한 URL을 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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