PHP 8.5.0 Beta 3 available for testing

curl_share_init_persistent

(PHP 8 >= 8.5.0)

curl_share_init_persistent持続的な cURL 共有ハンドルを初期化する

説明

curl_share_init_persistent(array $share_options): CurlSharePersistentHandle

持続的な cURL 共有ハンドルを、 指定した共有オプションを使って初期化します。 curl_share_init() と異なり、 この関数で作成したハンドルは、PHP のリクエスト終了時に破棄されません。 同じ share_options を持つ共有ハンドルが見つかった場合、 それが再利用されます。

パラメータ

share_options
CURL_LOCK_DATA_* 定数を指定した、 空でない配列

注意: CURL_LOCK_DATA_COOKIE は許可されません。 指定すると、この関数は ValueError をスローします。 PHP リクエスト間で Cookie を共有すると、 ユーザー間でセンシティブなデータがうっかり混在する可能性があるからです。

戻り値

CurlSharePersistentHandle を返します。

エラー / 例外

  • share_options が空の場合、 この関数は ValueError をスローします。
  • share_optionsCURL_LOCK_DATA_* にマッチしない値を含んでいた場合、 この関数は ValueError をスローします。
  • share_optionsCURL_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);

?>

参考

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top