curl:如何限制GET的大小?

Dou*_*aye 3 php curl

我想从curl的URL中检索前10k字节(在我的例子中使用PHP).有没有办法指定这个?我认为CURLOPT_BUFFERSIZE会这样做,但它似乎只能确定在检索所有内容之前重用的缓冲区的大小.

Lod*_*dle 6

这就是我在c ++中的表现

int offset = 0;
int size = 10*1024;

char range[256];
curl_slist_s *pHeaders = NULL;
snprintf(range, 256, "Range: bytes=%d-%d", offset, offset+size-1);

pHeaders = curl_slist_append(pHeaders, range);
curl_easy_setopt(pCurlHandle, CURLOPT_HTTPHEADER, pHeaders);

curl_slist_free_all(pHeaders);
pHeaders = NULL;
Run Code Online (Sandbox Code Playgroud)

编辑:刚刚发现你在php中的意思.我会看看我是否能找到如何移植它.

认为这应该在PHP中工作:

$offset = 0;
$size = 10*1024;

$a = $offset;
$b = $offset + $size-1;

curl_easy_setopt(curlHandle, CURLOPT_HTTPHEADER, array("Range: bytes=$a-$b") );
Run Code Online (Sandbox Code Playgroud)

  • 你可以做的另一个hacky方法是使用curl回调(不确定这是否在php中)并在下载x字节后将其自行停止. (2认同)