我想知道是否有办法通过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
的标头然后获取完整内容?
答案 0 :(得分:0)
选项2:无法限制 下载PHP的cURL函数的大小 但是这个功能给了我错误 写身体失败(0!= 11350)和 阅读我发现了很多 说它是一个错误。
目前尚不清楚你到底在做什么。如果你返回0,那么cURL肯定会发出错误信号,但你会读到你需要的所有数据。只需忽略错误。
如果您尝试过,则未提及的另一个选项是将fopen
与http://
包装一起使用。例如:
$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');