phpday 2025 - Call For Papers

curl_share_init

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

curl_share_initcurl 共有ハンドルを初期化する

説明

curl_share_init(): CurlShareHandle

複数の cURL ハンドルで、データを共有できるようにします。

パラメータ

この関数にはパラメータはありません。

戻り値

cURL の共有ハンドルを返します。

変更履歴

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

例1 curl_share_init() の例

この例は、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);
?>

参考

add a note

User Contributed Notes 1 note

up
0
Robert Chapin
7 years ago
Cookie handling is DISABLED by default. The following must be used prior to CURLOPT_SHARE.

curl_setopt($ch1, CURLOPT_COOKIEFILE, "");
curl_setopt($ch2, CURLOPT_COOKIEFILE, "");

Also, do not attempt to use CURLOPT_SHARE with curl_setopt_array because this can cause the options to be set in the wrong order, which will fail.
To Top