Php get的卷曲大小限制

Php get的卷曲大小限制,php,curl,Php,Curl,我想知道是否有办法通过cURL只获取特定数量的数据 选项1: curl\u setopt($curl\u句柄,CURLOPT\u HTTPHEADER,数组(“范围:字节=0-1000”); 但并非所有服务器都支持它 选项2: 但是这个函数给了我错误写正文失败(0!=11350),我发现很多人说这是一个错误 因此,按照上面的write\u函数我尝试curl\u关闭($handle)而不是返回0,但这会引发一个错误尝试从回调关闭curl句柄 现在我能想到的唯一方法是解析内容长度的标题,但这最终会导

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

选项1:
curl\u setopt($curl\u句柄,CURLOPT\u HTTPHEADER,数组(“范围:字节=0-1000”);
但并非所有服务器都支持它

选项2:
但是这个函数给了我错误
写正文失败(0!=11350)
,我发现很多人说这是一个错误

因此,按照上面的
write\u函数
我尝试
curl\u关闭($handle)
而不是
返回0
,但这会引发一个错误
尝试从回调关闭curl句柄

现在我能想到的唯一方法是解析内容长度
的标题,但这最终会导致两个请求???
首先使用
CURLOPT_NOBODY
获取标题,然后获取完整内容

选项2:在限制 下载PHP的cURL函数的大小 但是这个函数给了我一个错误 写入正文失败(0!=11350)和 我发现很多 说它是一只虫子

不清楚你到底在那里干什么。如果返回0,那么cURL将发出错误信号,当然,但是您已经读取了所需的所有数据。忽略这个错误

如果您尝试过,另一个您没有提到的选项是将
fopen
http://
包装一起使用。例如:

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

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


不确定这是否正是您需要的,但应限制从远程源获取的数据量。

这似乎解决了您的问题:

mb_strlen($string, '8bit');

目的是只从文件中获取前1000个字节,还是只需要处理前1000个字节?我实际上正在构建一个css优化器,它将对网站进行爬网,并解析css的
标记和
在同一域上为可能的其他
唯一的
css文件爬行其他链接,并连接+压缩它们。因此,由于css文件和原始html文件通常不会超过500kb,我想对其进行限制,所以黑帽人继续给我的服务器增加额外的负载,但让我的网站解析锚定标记的gbs。你可以通过
fsockopen
和朋友来实现这一点,但这种优化不值得。请记住,“过早优化是万恶之源”仅供参考,我在磁盘已满时看到过类似“写入体失败(0!=11350)”的东西。我知道fopen,但许多测试表明,curl通常比
fopen
快2-4倍,因此尝试了解是否还有其他可能性,另一方面,即使它在获取所有数据时抛出了一个错误(我认为这也可能是因为快速连接导致缓冲区大小等于整个数据,我将尝试使用过长的数据进行测试)