Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 试图用curl读取HTML文件的一部分,结果很奇怪_Php_Curl - Fatal编程技术网

Php 试图用curl读取HTML文件的一部分,结果很奇怪

Php 试图用curl读取HTML文件的一部分,结果很奇怪,php,curl,Php,Curl,示例输出是(每次点击刷新按钮时略有不同): èí]kSã8þNÕüOÍr™&™‚ 我从来没有使用过这个范围。你有什么理由选择这个范围吗 gzip仅在从0开始时起作用的原因是其中有信息需要解压内容。如果必须使用范围,则应捕获每个范围的数据并将其合并,然后取消gzip 编辑: 您在一些评论中提到,您使用Range来获取一些数据以节省带宽。我使用Firebug查看了页面,它小于10kb。所有图像几乎都是500k。您已经节省了很多,除非您使用的是拨号互联网10kb,否则这没什么。不要担心使用Range和

示例输出是(每次点击刷新按钮时略有不同):

èí]kSã8þNÕüOÍr™&™‚ 我从来没有使用过这个范围。你有什么理由选择这个范围吗

gzip仅在从0开始时起作用的原因是其中有信息需要解压内容。如果必须使用范围,则应捕获每个范围的数据并将其合并,然后取消gzip

编辑:


您在一些评论中提到,您使用Range来获取一些数据以节省带宽。我使用Firebug查看了页面,它小于10kb。所有图像几乎都是500k。您已经节省了很多,除非您使用的是拨号互联网10kb,否则这没什么。不要担心使用Range和组合数据块,让我们来看看ndle gzip。

我从未使用过CURLOPT_范围。您需要使用它的原因是什么

gzip仅在从0开始时起作用的原因是其中有信息需要解压内容。如果必须使用范围,则应捕获每个范围的数据并将其合并,然后取消gzip

编辑:


您在一些评论中提到,您使用Range来获取一些数据以节省带宽。我使用Firebug查看了页面,它小于10kb。所有图像几乎都是500k。您已经节省了很多,除非您使用的是拨号互联网10kb,否则这没什么。不要担心使用Range和组合数据块,让我们来看看ndle gzip。

您将获得gzip内容。您应该明确声明希望返回纯HTML。您可以添加以下选项:

set_time_limit(0);
$ch = curl_init('http://www.tibia.com/community/?subtopic=highscores&world=Antica');
curl_setopt($ch, CURLOPT_RANGE, '0-999');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
echo $data = curl_exec($ch);//get curl response
curl_close($ch);

您正在获取gzip内容。您应该明确声明希望返回纯HTML。您可以添加以下选项:

set_time_limit(0);
$ch = curl_init('http://www.tibia.com/community/?subtopic=highscores&world=Antica');
curl_setopt($ch, CURLOPT_RANGE, '0-999');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
echo $data = curl_exec($ch);//get curl response
curl_close($ch);

我敢打赌你得到的是gzipped内容。我敢打赌你得到的是gzipped内容。我同意,尽管有一个小小的修改,任何gzipped内容都需要完整下载才能正确解码,因此不需要收集不同的范围,然后尝试组合它们。我想使用它,因为我只需要打开一个证书从许多类似这样的页面下载数据,不需要下载整个页面。我如何组合范围?是的,虽然没有增益vs file\u get\u内容。有些东西通过apache获取了我的大量数据,我认为可能是这样,但你刚刚告诉我,这不太可能。同意,你只需稍加修改,任何gzipped内容都需要完整下载才能正确解码,因此无需收集不同的范围,然后尝试将它们组合起来。我想使用它,因为我只需要从许多类似这样的页面中打开特定的数据孔,而不必下载e整个页面。我如何组合范围?是的,尽管与文件内容相比没有增益。有些东西通过apache获取了我的大量数据,我认为可能是这样的,但你刚刚告诉我,情况很可能不是这样。