cURL响应与在浏览器中打开时不同

时间:2018-11-18 06:26:46

标签: php curl

在我的一个项目中,我需要从外部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>

但是,当我通过cURL调用相同的URL时,响应变为:

<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的团队取得联系?

0 个答案:

没有答案