Как частично загрузить удаленный файл ЗАВИХРЕНИЕМ?

Действительно ли возможно частично загрузить удаленный файл ЗАВИХРЕНИЕМ? Скажем, фактический размер файла удаленного файла составляет 1 000 КБ. Как я могу загрузить только первых 500 КБ из него?

21
задан boast 10 February 2013 в 23:47
поделиться

3 ответа

[

] Также можно установить параметр заголовка диапазона с расширением php-curl.[

] [
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.spiegel.de/');
curl_setopt($ch, CURLOPT_RANGE, '0-500');
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
] [

] Но, как уже отмечалось ранее, если сервер не обработает этот заголовок, а пошлёт весь файл, то curl загрузит его целиком. Например, []http://www.php.net[] игнорирует заголовок. Но вы можете (в дополнение) установить обратный вызов функции записи и прервать запрос, когда будет получено больше данных, например [

] [
// php 5.3+ only
// use function writefn($ch, $chunk) { ... } for earlier versions
$writefn = function($ch, $chunk) { 
  static $data='';
  static $limit = 500; // 500 bytes, it's only a test

  $len = strlen($data) + strlen($chunk);
  if ($len >= $limit ) {
    $data .= substr($chunk, 0, $limit-strlen($data));
    echo strlen($data) , ' ', $data;
    return -1;
  }

  $data .= $chunk;
  return strlen($chunk);
};

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.php.net/');
curl_setopt($ch, CURLOPT_RANGE, '0-500');
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, $writefn);
$result = curl_exec($ch);
curl_close($ch);
]
35
ответ дан 29 November 2019 в 06:51
поделиться
[

] Это может быть ваше решение (загрузите [] первые 500KB[] в [] output.txt[])[

] [
curl -r 0-511999 http://www.yourwebsite.com > output.txt
] [
    ] [
  • ], в то время как []511999[] это [] 500^1024-1[][
  • ] [
]
0
ответ дан 29 November 2019 в 06:51
поделиться

Получите первые 100 байт документа:

curl -r 0-99 http://www.get.this

из руководства

Убедитесь, что у вас современный завиток

.
17
ответ дан 29 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: