【PHP8.x】CURLOPT_RANGE定数の使い方
CURLOPT_RANGE定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
CURLOPT_RANGE定数は、PHPのcURL拡張機能において、HTTPリクエストのRangeヘッダを設定するためのオプションを表す定数です。この定数を使用することで、Webサーバーに対してリソース(ファイルなど)の全体ではなく、指定された特定の部分のみを要求することが可能になります。例えば、大きなファイルのダウンロードを途中から再開する「レジューム機能」や、動画ファイルのシーク(再生位置の移動)機能などを実装する際に利用されます。
具体的には、curl_setopt()関数にこのCURLOPT_RANGE定数を第一引数として指定し、第二引数には取得したいバイト範囲を示す文字列を渡します。この文字列はHTTPのRangeヘッダの形式に従い、「0-499」のように開始バイトと終了バイトを指定したり、「500-」のように開始バイトから最後までを指定したり、「-100」のように最後の100バイトを指定したりすることができます。
このオプションを設定してcURLリクエストを実行すると、サーバーは通常、指定された範囲のデータと、その範囲を示すContent-Rangeヘッダを含む部分的なレスポンスを返します。ただし、WebサーバーがRangeリクエストをサポートしていない場合や、リクエストされた範囲が無効な場合には、サーバーは異なる挙動を示すことがありますので、その点には注意が必要です。システムエンジニアを目指す上で、効率的なデータ転送や信頼性の高いファイルダウンロード機能を構築する際に重要な定数の一つです。
構文(syntax)
1<?php 2$ch = curl_init("http://example.com/data.txt"); 3curl_setopt($ch, CURLOPT_RANGE, "0-1023"); 4?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません