PHP cURL curl_share_init() 函式



PHP cURL 的 curl_share_init() 函式用於初始化 cURL 共享控制代碼。此控制代碼允許在多個 cURL 控制代碼之間共享資料,例如 Cookie 或 DNS 快取。

語法

以下是 PHP cURL curl_share_init() 函式的語法:

CurlShareHandle curl_share_init ()

引數

此函式不接受任何引數。

返回值

curl_share_init() 函式成功時返回 cURL 共享控制代碼,失敗時返回 FALSE。

PHP 版本

curl_share_init() 函式首次引入於 PHP 5.5.0 的核心版本中,在 PHP 7 和 PHP 8 中繼續輕鬆執行。

示例 1

首先,我們將向您展示 PHP cURL curl_share_init() 函式的基本示例,以初始化 cURL 共享控制代碼並顯示訊息。

<?php
   // Create a cURL share handle
   $share_handle = curl_share_init();
   
   // Check for the initialization 
   if ($share_handle) {
       echo "The cURL share handle initialized successfully.";
   } else {
       echo "Failed to initialize cURL share handle.";
   }
   
   // Close the share handle when done
   curl_share_close($share_handle);
?>

輸出

以下是以下程式碼的結果:

The cURL share handle initialized successfully.

示例 2

在下面的 PHP 程式碼中,我們將嘗試使用 curl_share_init() 函式在兩個 cURL 控制代碼之間共享 Cookie。

<?php
   // Create a cURL share handle
   $sh = curl_share_init();
   
   // Enable sharing cookies
   curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
   
   // Create first cURL handle
   $ch1 = curl_init('https://tutorialspoint.tw');
   curl_setopt($ch1, CURLOPT_SHARE, $sh);
   curl_exec($ch1);
   
   // Create second cURL handle
   $ch2 = curl_init('https://tutorialspoint.tw/search.htm');
   curl_setopt($ch2, CURLOPT_SHARE, $sh);
   curl_exec($ch2);
   
   // Close the cURL handles
   curl_close($ch1);
   curl_close($ch2);
   
   // Close the share handle
   curl_share_close($sh);
?> 

輸出

這將生成以下輸出:

Found
The document has moved here.

Found
The document has moved here.

示例 3

現在,下面的程式碼使用 curl_share_init() 函式在多個 cURL 控制代碼之間共享 DNS 快取。

<?php
   // Create a cURL share handle
   $share_handle = curl_share_init();
   
   // Enable sharing DNS cache
   curl_share_setopt($share_handle, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
   
   // Create first cURL handle
   $ch1 = curl_init('http://abc123.com');
   curl_setopt($ch1, CURLOPT_SHARE, $share_handle);
   curl_exec($ch1);
   
   // Create second cURL handle
   $ch2 = curl_init('http://abc123.com/another-page');
   curl_setopt($ch2, CURLOPT_SHARE, $share_handle);
   curl_exec($ch2);
   
   // Close the cURL handles
   curl_close($ch1);
   curl_close($ch2);
   
   // Close the share handle
   curl_share_close($share_handle);
?> 

輸出

以上將顯示提供的 URL 的 HTML 內容:

curl_share_init Example 3

示例 4

在以下示例中,我們使用 curl_share_init() 函式處理用於共享 Cookie 和 DNS 快取的多種資料型別。

<?php
   // create a cURL share handle
   $share_handle = curl_share_init();
   
   // enable sharing cookies and DNS cache
   curl_share_setopt($share_handle, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
   curl_share_setopt($share_handle, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
   
   // create first cURL handle
   $ch1 = curl_init('http://abc123.com');
   curl_setopt($ch1, CURLOPT_SHARE, $share_handle);
   curl_exec($ch1);
   
   // create second cURL handle
   $ch2 = curl_init('http://abc123.com/another-page');
   curl_setopt($ch2, CURLOPT_SHARE, $share_handle);
   curl_exec($ch2);
   
   // Close the cURL handles
   curl_close($ch1);
   curl_close($ch2);
   
   // Close the share handle
   curl_share_close($share_handle);
?> 

輸出

以下是上述程式碼的輸出:

curl_share_init Example 4
php_function_reference.htm
廣告