>  기사  >  백엔드 개발  >  내 PHP `file_get_contents()` 함수가 원격 서버에서 HTTP 403 금지 오류를 발생시키는 이유는 무엇입니까?

내 PHP `file_get_contents()` 함수가 원격 서버에서 HTTP 403 금지 오류를 발생시키는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 05:58:27520검색

Why Is My PHP `file_get_contents()` Function Throwing an HTTP 403 Forbidden Error on Remote Servers?

PHP의 file_get_contents()가 원격 서버에서 HTTP 403 금지 오류로 인해 실패

PHP의 file_get_contents() 함수를 사용하여 원격 웹에서 콘텐츠를 검색하는 경우 페이지에서 로컬로 작동하더라도 서버에서 HTTP 403 Forbidden 오류가 발생할 수 있습니다. 이 문제를 해결하려면 다음을 고려하십시오.

1. PHP 유틸리티를 사용한 디버깅

PHP는 다음과 같은 디버깅 옵션을 제공합니다.

  • $http_response_header 변수: 각 file_get_contents() 호출 후 응답 HTTP 헤더를 저장합니다.
  • ignore_errors 컨텍스트 옵션: 실제 응답을 얻어 403 오류의 원인을 공개합니다.

2. 부족한 HTTP 헤더 해결

귀하의 요청에 Referer 또는 User-Agent와 같은 필수 HTTP 헤더가 부족할 수 있습니다. 대부분의 브라우저는 다음 사용자 에이전트를 사용합니다.

  • Chrome: Mozilla/5.0(Windows NT 10.0; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
  • Firefox: Mozilla/5.0(Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0

3. 위조 사용자 에이전트

stream_context_create()를 사용하여 위조된 사용자 에이전트로 컨텍스트를 생성할 수 있습니다.

<code class="php">$context = stream_context_create(
    array(
        "http" => array(
            "header" => "User-Agent: <Your User Agent>"
        )
    )
);

echo file_get_contents("www.google.com", false, $context);</code>

이 요청은 사용자 에이전트를 위조하여 지정된 사용자에게 보냅니다. URL.

참고자료:

  • [stream_context_create()](https://www.php.net/manual/en/function.stream-context -create.php)

위 내용은 내 PHP `file_get_contents()` 함수가 원격 서버에서 HTTP 403 금지 오류를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.