(PHP 8 >= 8.5.0)
curl_share_init_persistent — 持続的な cURL 共有ハンドルを初期化する
持続的な cURL 共有ハンドルを、
指定した共有オプションを使って初期化します。
curl_share_init() と異なり、
この関数で作成したハンドルは、PHP のリクエスト終了時に破棄されません。
同じ share_options を持つ共有ハンドルが見つかった場合、
それが再利用されます。
share_optionsCURL_LOCK_DATA_* 定数を指定した、
空でない配列
注意:
CURL_LOCK_DATA_COOKIEは許可されません。 指定すると、この関数は ValueError をスローします。 PHP リクエスト間で Cookie を共有すると、 ユーザー間でセンシティブなデータがうっかり混在する可能性があるからです。
CurlSharePersistentHandle を返します。
share_options が空の場合、
この関数は ValueError をスローします。
share_options が
CURL_LOCK_DATA_*
にマッチしない値を含んでいた場合、
この関数は ValueError をスローします。
share_options が
CURL_LOCK_DATA_COOKIE を含んでいた場合、
この関数は ValueError をスローします。
share_options に数値でない値が含まれていた場合、
この関数は TypeError をスローします。
例1 curl_share_init_persistent() の例
この例では、持続的な cURL 共有ハンドルを作成し、
接続を共有する方法を示します。
このコードを長く生き残る PHP SAPI で実行した場合、
$sh は SAPI リクエスト間で生き残ります。
<?php
// Create or retrieve a persistent cURL share handle set to share DNS lookups and connections
$sh = curl_share_init_persistent([CURL_LOCK_DATA_DNS, CURL_LOCK_DATA_CONNECT]);
// Initialize the first cURL handle and assign the share handle to it
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);
// Execute the first cURL handle. This may reuse the connection from an earlier SAPI request
curl_exec($ch1);
// Initialize the second cURL handle and assign the share handle to it
$ch2 = curl_init("http://example.com/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);
// Execute the second cURL handle. This will reuse the connection from $ch1
curl_exec($ch2);
?>