cURL大小限制

时间:2011-03-28 20:51:37

标签: php curl

我想知道是否有办法通过cURL获取特定数量的数据?

选项1:
curl_setopt ($curl_handle, CURLOPT_HTTPHEADER, array("Range: bytes=0-1000")); 但所有服务器都不支持

选项2:
Having trouble limiting download size of PHP's cURL function但是这个函数给了我错误Failed writing body (0 != 11350)和读数,我发现有很多人说它是个错误。

因此,按照上述write_function我尝试curl_close($handle)代替returning 0,但这会引发错误Attempt to close cURL handle from a callback

现在,我能想到的唯一方法是解析内容长度but this will eventually result in 2 requests ??的标头首先获取带CURLOPT_NOBODY的标头然后获取完整内容?

3 个答案:

答案 0 :(得分:0)

  

选项2:无法限制   下载PHP的cURL函数的大小   但是这个功能给了我错误   写身体失败(0!= 11350)和   阅读我发现了很多   说它是一个错误。

目前尚不清楚你到底在做什么。如果你返回0,那么cURL肯定会发出错误信号,但你会读到你需要的所有数据。只需忽略错误。

如果您尝试过,则未提及的另一个选项是将fopenhttp://包装一起使用。例如:

$h = fopen('http://example.com/file.php', 'r');
$first1000Bytes = fread($h, 1000);
fclose($h);

答案 1 :(得分:0)

是否可以使用fopen和fgets一次读取一行,直到您认为已经读取了足够的行,或者使用fgetc一次读取一个字符。 fgets

不确定这是否是您正在寻找的东西,但应该限制从远程来源获取的数据量。

答案 2 :(得分:-4)

这似乎可以解决您的问题:

mb_strlen($string, '8bit');