Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】CURL_TIMECOND_IFMODSINCE定数の使い方

CURL_TIMECOND_IFMODSINCE定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

CURL_TIMECOND_IFMODSINCE定数は、PHPのcURL拡張機能において、HTTPリクエストの条件付き取得条件の一つである「If-Modified-Since」を表す定数です。この定数を利用することで、サーバーへ特定のリソースをリクエストする際に、指定した日時以降にそのリソースが更新されている場合にのみデータを取得するよう、cURLに指示できます。

この機能は、主にcurl_setopt()関数を用いてCURLOPT_TIMECONDITIONオプションにCURL_TIMECOND_IFMODSINCEを設定し、さらにCURLOPT_TIMEVALUEオプションで比較したい基準日時(UNIXタイムスタンプ形式)を指定することで有効になります。cURLは、この設定に基づきHTTPリクエストヘッダーにIf-Modified-Since: [指定日時]を含めてサーバーに送信します。

サーバーは、リソースが指定された日時以降に変更されていない場合、リソースの本文を送信せずに304 Not Modifiedというステータスコードを返します。この場合、cURLは新たなデータをダウンロードせず、ネットワーク帯域の消費を抑えることができます。もしリソースが更新されていれば、サーバーは通常の200 OKとともに最新のリソースデータを返します。これにより、クライアント側でのキャッシュの効率的な利用や、ネットワークトラフィックおよびサーバーへの負荷を軽減することが可能となり、ウェブアプリケーションのパフォーマンス最適化において重要な役割を果たします。

構文(syntax)

1<?php
2$ch = curl_init();
3curl_setopt($ch, CURLOPT_URL, "https://example.com/api/data");
4curl_setopt($ch, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
5curl_setopt($ch, CURLOPT_TIMEVALUE, strtotime("2023-01-01 00:00:00 UTC"));
6$response = curl_exec($ch);
7curl_close($ch);
8?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ