file_get_contents()의 403 Forbidden 오류
웹사이트 스크래퍼를 개발하려는 시도 중 개발자가 원격에서 403 Forbidden 오류를 발견했습니다. 로컬 컴퓨터에서 문제 없이 file_get_contents()를 사용하는 동안 서버. 오류 메시지는 HTTP 요청이 실패했음을 나타냅니다.
검사 결과 php.ini 구성 파일의 허용_url_fopen 설정이 활성화된 것으로 확인되어 추가 솔루션을 검색하게 되었습니다. 오류 원인에 대한 통찰력을 얻으려면 PHP의 디버깅 메커니즘을 권장합니다.
구체적으로 $http_response_header 변수는 각 file_get_contents() 호출 후에 응답 HTTP 헤더를 제공할 수 있습니다. 또한,ignore_errors 컨텍스트 옵션은 실제 응답을 반환하여 잠재적으로 403 오류를 설명할 수 있습니다.
실제 분석에 따르면 오류는 Referer 또는 User-Agent와 같은 필수 HTTP 헤더 누락으로 인해 발생할 수 있습니다. 이 문제를 해결하기 위해 stream_context_create()를 사용하여 사용자 에이전트를 설정하고 실제 브라우저 요청을 시뮬레이션하는 사용자 정의 컨텍스트를 생성할 수 있습니다.
$context = stream_context_create( array( "http" => array( "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36" ) ) ); echo file_get_contents("www.google.com", false, $context);
이 코드 예제는 사용자 에이전트를 설정하고 Google에 요청을 보내는 방법을 보여줍니다. , 효과적인 웹 스크래핑을 위해 헤더를 조작하는 방법을 보여줍니다.
위 내용은 내 웹사이트 스크레이퍼가 원격 서버에서 `file_get_contents()`와 함께 403 금지 오류를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!