Почему я получаю 500 ошибок при использовании file_get_contents (), но работает в браузере?

$html = file_get_contents("https://www.[URL].com"); echo $html; 

производит это в журналах ошибок:

PHP Warning: file_get_contents (https: // www. [URL] .com) [function.file-get-contents]: не удалось открыть поток: HTTP-запрос не удался! HTTP / 1.1 500 Внутренняя ошибка сервера в /Applications/MAMP/htdocs/test.php в строке 13 ";

Однако сайт отлично работает в браузере.

Я также пытался использовать cURL. Я не получаю никаких ошибок в файле журнала, но $html теперь эхо:

Ошибка сервера в приложении '/'
В экземпляре объекта не задана ссылка на объект.

… еще несколько отладочных данных

Любые идеи, как обойти это?

Попробуйте это обходное решение:

 $opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0\r\n")); $context = stream_context_create($opts); $header = file_get_contents('https://www.example.com',false,$context); 

Если это не работает, возможно, вы не можете читать https?

Мне нужно было ввести больше данных в заголовок:

 $opts = array('http' => array( 'method' => "GET", 'header' => "User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0\r\n" . "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n" . "Accept-Encoding:gzip, deflate\r\n" . "Accept-Language:cs,en-us;q=0.7,en;q=0.3\r\n" . "Connection:keep-alive\r\n" . "Host:your.domain.com\r\n" )); $context = stream_context_create($opts); $html = file_get_contents($sap_url, FALSE, $context);