2024 年日本 PHP 研討會

curl_share_init

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

curl_share_init初始化 cURL 共享控制碼

說明

curl_share_init(): CurlShareHandle

允許在 cURL 控制碼之間共享資料。

參數

此函式沒有參數。

傳回值

傳回 cURL 共享控制碼。

更新日誌

版本 說明
8.0.0 此函數現在會返回一個 CurlShareHandle 實例;先前返回的是 資源

範例

範例 #1 curl_share_init() 範例

此範例將建立一個 cURL 共享控制碼,將兩個 cURL 控制碼新增至其中,然後以共享 Cookie 資料的方式執行它們。

<?php
// 建立 cURL 共享控制碼並將其設定為共享 Cookie 資料
$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("https://php.dev.org.tw/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// 執行第二個 cURL 控制碼
// $ch1 控制碼中的所有 Cookie 都會與 $ch2 控制碼共享
curl_exec($ch2);

// 關閉 cURL 共享控制碼
curl_share_close($sh);

// 關閉 cURL 控制碼
curl_close($ch1);
curl_close($ch2);
?>

參見

新增註記

使用者貢獻的註記 1 則註記

0
Robert Chapin
7 年前
預設情況下,Cookie 處理是 **停用** 的。必須在 CURLOPT_SHARE 之前使用以下程式碼。

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

此外,不要嘗試將 CURLOPT_SHARE 與 curl_setopt_array 一起使用,因為這可能會導致選項設定順序錯誤而失敗。
To Top