(PHP 5 >= 5.5.0, PHP 7, PHP 8)
curl_share_setopt — cURL 共有ハンドルのオプションを設定する
指定した cURL 共有ハンドルに、オプションを設定します。
share_handle
curl_share_init() が返す cURL 共有ハンドル
option
オプション | 説明 |
---|---|
CURLSHOPT_SHARE |
共有させるデータの種類を指定します。 |
CURLSHOPT_UNSHARE |
共有させないデータの種類を指定します。 |
value
値 | 説明 |
---|---|
CURL_LOCK_DATA_COOKIE |
クッキーのデータを共有する。 |
CURL_LOCK_DATA_DNS |
DNS キャッシュを共有する。cURL マルチハンドルを使うときには、 同じマルチハンドルに追加されたすべてのハンドルがデフォルトで DNS キャッシュを共有することに注意しましょう。 |
CURL_LOCK_DATA_SSL_SESSION |
SSL セッション ID を共有し、同一サーバーへの再接続時の SSL ハンドシェイクの所要時間を削減する。 同じハンドル内では、デフォルトで SSL セッション ID が再利用されることに注意しましょう。 |
バージョン | 説明 |
---|---|
8.0.0 |
share_handle は CurlShareHandle クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、resource を期待していました。
|
例1 curl_share_setopt() の例
この例は、cURL 共有ハンドルを作って二つの cURL ハンドルを追加し、 それぞれを実行してクッキーのデータを共有します。
<?php
// cURL 共有ハンドルを作り、クッキーのデータを共有させます
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
// 最初の cURL ハンドルを作り、共有ハンドルを割り当てます
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);
// 最初の cURL ハンドルを実行します
curl_exec($ch1);
// 二番目の cURL ハンドルを作り、共有ハンドルを割り当てます
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);
// 二番目の cURL ハンドルを実行します
// $ch1 ハンドルのすべてのクッキーを、$ch2 ハンドルと共有します
curl_exec($ch2);
// cURL 共有ハンドルを閉じます
curl_share_close($sh);
// cURL ハンドルを閉じます
curl_close($ch1);
curl_close($ch2);
?>