現在の位置: ホーム> 最新記事一覧> curl_share_init()とcurl_init()は同じことですか?

curl_share_init()とcurl_init()は同じことですか?

M66 2025-06-06

curl_init()は、最も一般的に使用されるCurl関数の1つです。その機能は、さまざまな後続のカール操作のカールセッションハンドルを初期化することです。 Curl_init()が使用されるたびに、Curlハンドルが返されます。これは、後続の操作の基礎です。それを通して、リクエストオプションを設定したり、リクエストを実行したり、応答を取得したりできます。

基本的な使用法:

 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://m66.net/api/endpoint");  // リクエストされたセットURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  // 戻り値を文字列に設定します,直接出力する代わりに
$response = curl_exec($ch);  // リクエストを実行して、応答を取得します
curl_close($ch);  // 閉鎖 cURL ハンドル

curl_init()は、主にCurl要求の初期化に使用されます。複数のリクエスト間で設定を共有することは含まれません。したがって、新しいリクエストが開始されるたびに、新しいセッションハンドルを作成するためにcurl_init()を呼び出す必要があります。

2。CURL_SHARE_INIT ()関数

curl_init()とは異なり、 curl_share_init()は、共有ハンドルを返す共有リソースを作成するために使用される関数です。このハンドルは、接続、Cookie、DNSルックアップなどの複数のカールセッションでリソースを共有できます。複数のカールセッションで共有設定を実装するために使用されます。

基本的な使用法:

 $ch1 = curl_init();
$ch2 = curl_init();

// 创建共享ハンドル
$sh = curl_share_init();

// 设置共享ハンドル的资源
curl_setopt($ch1, CURLOPT_SHARE, $sh);
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// その他を設定します cURL リクエストオプション
curl_setopt($ch1, CURLOPT_URL, "https://m66.net/api/endpoint1");
curl_setopt($ch2, CURLOPT_URL, "https://m66.net/api/endpoint2");

curl_exec($ch1);
curl_exec($ch2);

// 閉鎖会话和共享ハンドル
curl_close($ch1);
curl_close($ch2);
curl_share_close($sh);

この例では、 curl_share_init()によって返された共有ハンドル$ shは、2つの異なるCurlセッションで$ CH1CH2に設定されているため、リソースを共有できます。 curl_share_init()は、主に並行してリクエストするときにパフォーマンスを改善するために使用され、複数のCurlセッションが同じ構成を共有できます。

3. curl_init()curl_share_init()の違い

違いのポイントcurl_init() curl_share_init()
関数Curlセッションハンドルを初期化して、単一のHTTPリクエストを開始する複数のセッションの共有リソースハンドルを初期化してリソースを共有する
返品値カールハンドルを返しますリソース共有のために共有ハンドルを返します
シナリオを使用します単一のカールリクエスト複数のカール要求間で構成とリソースを共有します
リソースを共有します共有リソースはサポートされていません共有接続、Cookie、DNS検索、その他のリソースをサポートします
閉じたときの操作curl_close()を使用して閉じるcurl_share_close()を使用して共有ハンドルを閉じます

一般に、 curl_init()は単一のCurl要求の初期化に使用され、 Curl_share_init()は複数のCurlセッションの共有リソースを作成するために使用されます。これらはさまざまな方法で使用および適用されますが、 curl_share_init()は、同時リクエストの場合、パフォーマンスを大幅に改善できます。