> 백엔드 개발 > PHP 튜토리얼 > PHP의 `file_get_contents`가 외부 URL을 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

PHP의 `file_get_contents`가 외부 URL을 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-24 20:07:12
원래의
812명이 탐색했습니다.

Why Does PHP's `file_get_contents` Fail to Fetch External URLs, and How Can I Fix It?

PHP file_get_contents가 외부 URL 콘텐츠를 가져오지 못함

PHP file_get_contents 함수를 활용하여 원격 URL(예: , file_get_contents('http://example.com')), 결과가 다음과 같은 문제가 발생합니다. 특정 서버에서는 일관되게 비어 있습니다. 그러나 동일한 함수를 사용하여 로컬 파일에 액세스하면 예상된 결과가 반환됩니다.

php.ini의 가능한 원인

빈 결과는 PHP의 구성 설정에 따른 것일 수 있습니다. php.ini 파일.

솔루션

이 문제를 해결하려면 php.ini 파일 내에서 다음과 같은 특정 구성을 확인하십시오.

  • allow_url_fopen: 이 설정이 활성화되어 있는지 확인하세요(1 또는 On으로 설정). 이는 PHP가 파일 시스템 기능을 사용하여 URL에 액세스할 수 있는지 여부를 제어합니다.
  • allow_url_include: PHP가 원격 URL을 직접 포함하지 못하도록 하려면 이 설정을 비활성화합니다(0 또는 Off로 설정).
  • file_get_contents.allow_url_fopen: 있는 경우 이 설정이 재정의됩니다. file_get_contents를 위해 특별히 allowed_url_fopen을 사용하세요. 활성화되어 있는지 확인하세요(1로 설정).

이러한 설정이 설명대로 설정되지 않은 경우 적절하게 조정하고 PHP 서버를 다시 시작하여 변경 사항을 적용하세요.

대체 접근 방식

php.ini 설정을 수정할 수 없거나 다른 접근 방식을 선호하는 경우 php.ini의 동작을 모방할 수 있습니다. 다음 예와 같이 cURL을 사용하는 file_get_contents:

function get_content($URL){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $URL);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

echo get_content('http://example.com');
로그인 후 복사

위 내용은 PHP의 `file_get_contents`가 외부 URL을 가져오지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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