В одном из моих проектов мне необходимо получить содержимое верхнего / нижнего колонтитула с внешнего URL-адреса. Один из URL (скажем, это https://example.com/header) ведет себя странно, когда возвращаемое содержимое не соответствует ожидаемому.
Например, если я открою указанный URL-адрес в браузере, в исходном коде появится сообщение (PS: это не содержит никаких тегов html, head, body, как должно быть):
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
Однако, когда я звоню по тому же URL через cURL, ответ становится:
<ul>
<li>Item 25</li>
<li>Item 100</li>
</ul>
Конечно, я показываю очень упрощенную форму ответа, но между ними есть существенная разница.
Код, который я использую:
$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c,CURLOPT_SSL_VERIFYHOST,0); // $url is https, so had to use this
curl_setopt($c,CURLOPT_SSL_VERIFYPEER,0); // $url is https, so had to use this
curl_setopt($c, CURLOPT_HEADER, 0);
curl_setopt($c, CURLOPT_VERBOSE, 0);
$user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'
curl_setopt ($c, CURLOPT_USERAGENT, $user_agent); // this line was originally not being used, but I tried adding this to see if it helps - but it did not
$html = curl_exec($c);
if (curl_error($c))
die(curl_error($c));
// Get the status code
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
curl_close($c);
return $html;
Что я не уверен, так это то, что это что-то, что можно исправить с моей стороны, или я должен связаться с командой, которая управляет этими URL-адресами?