为什么curl_exec()从一个URL返回部分HTML并在其他URL上返回完整(如预期的)HTML?

时间:2010-09-01 08:47:40

标签: php

使用$ url的两个值比较以下两个代码块:

1)

$url = 'http://www.localharvest.org';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo htmlspecialchars(curl_exec($ch));

2)

$url = 'http://www.localharvest.org/caledonia-farm-M136';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo htmlspecialchars(curl_exec($ch));

1按预期返回完整的HTML。 2只返回一行HTML。访问第二页确认实际上有更多的HTML。

为什么呢? < 3

1 个答案:

答案 0 :(得分:0)

我刚试过这个。

我得到了相同的结果。 可能是因为Curl查找标头的方式。标题通常与主要内容分开4个新行。

如果您查看第二个网址的内容,您会发现相当奇妙的是,该行周围有很多空白区域:

 <!--jsp:setProperty name="mapg" property="projection" value="init"/-->

卷曲可能会对什么是正文以及什么是标题感到困惑。

我建议您使用一些不同的选项来查看Curl 实际取回的内容,试试CURLOPT_HEADER

Full list of PHP Curl options