2011-05-18 21 views
0

我试图使用curl只获取一个网页的一部分,所以它会下载较少的数据从而使其更快。我一直在测试我能想到的所有可能的选择,但无济于事。主要的一个尝试是定义一个范围:curl_setopt($ch, CURLOPT_RANGE, "0-4096");替代CURLOPT_RANGE抢特定部分

即时尝试这个服务器是HTTP 1.1,但整个页面被拉动设置没有影响。是否有另一种方式来关闭PHP中的X字节之后的连接或这些行中的某些内容?

+1

如果服务器实际上接受'Range'这只会工作。您将通过发送请求并查看它是否返回“Accept-Ranges”头来知道这一点。你能确认你从服务器上获得这些吗? – 2011-05-18 17:11:33

+0

我没有看到它,是否有其他方法来执行大致相同的事情吗? – 2011-05-18 17:41:27

+0

不是我所知道的。除非你想创建自己的原始[流](http://php.net/stream)。 – 2011-05-18 17:52:09

回答

3

您可以使用自己写的回调(CURLOPT_WRITEFUNCTION),并有希望在收到足够的数据返回一个错误。

使用这样写回调的例子可以在这里找到: http://curl.haxx.se/libcurl/php/examples/callbacks.html

+0

你有如何这会工作的例子吗? – 2011-05-18 18:49:23

+1

也看到这一点 - https://stackoverflow.com/a/2033444/1454514 – 2016-08-24 07:59:10