curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_setoptcURL 共有ハンドルのオプションを設定する

説明

curl_share_setopt(CurlShareHandle $share_handle, int $option, mixed $value): bool

指定した 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 が再利用されることに注意しましょう。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 share_handleCurlShareHandle クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、resource を期待していました。

例1 curl_share_setopt() の例

この例は、cURL 共有ハンドルを作って二つの cURL ハンドルを追加し、 それぞれを実行してクッキーのデータを共有します。

<?php
// cURL 共有ハンドルを作り、クッキーのデータを共有させます
$sh curl_share_init();
curl_share_setopt($shCURLSHOPT_SHARECURL_LOCK_DATA_COOKIE);

// 最初の cURL ハンドルを作り、共有ハンドルを割り当てます
$ch1 curl_init("http://example.com/");
curl_setopt($ch1CURLOPT_SHARE$sh);

// 最初の cURL ハンドルを実行します
curl_exec($ch1);

// 二番目の cURL ハンドルを作り、共有ハンドルを割り当てます
$ch2 curl_init("http://php.net/");
curl_setopt($ch2CURLOPT_SHARE$sh);

// 二番目の cURL ハンドルを実行します
//  $ch1 ハンドルのすべてのクッキーを、$ch2 ハンドルと共有します
curl_exec($ch2);

// cURL 共有ハンドルを閉じます
curl_share_close($sh);

// cURL ハンドルを閉じます
curl_close($ch1);
curl_close($ch2);
?>

関連キーワード:  共有, ハンドル, cURL, share, 設定, オプション, setopt, データ, handle, クッキー