現在の位置: ホーム> 最新記事一覧> curl_share_init() + curl_init():共有セッションを構築するための正しい手順

curl_share_init() + curl_init():共有セッションを構築するための正しい手順

M66 2025-05-23

PHPでは、 Curlは非常に強力なツールであり、さまざまなネットワークリクエストを作成するために使用できます。 curl_init()は、curlセッションの初期化に使用される関数であり、 curl_share_init()は共有セッションの初期化に使用されます。これら2つの機能を通じて、さまざまなセッション共有とデータ交換を実装して、効率を向上させることができます。

この記事では、これら2つの機能を使用して共有セッションを構築するのに役立つ方法を詳細に分析します。

1。共有セッションとは何ですか?

共有セッションを使用すると、複数のカールセッションがCookie、DNS解像度キャッシュなどの特定の設定を共有できます。複数のリクエストを行う際に、ネットワーク接続、認証情報、ヘッダー情報などの複製設定を避け、パフォーマンスとリソースの使用を最適化します。

2。curl_share_init ()およびcurl_init()の基本関数

  • curl_init() :新しいCurlセッションを初期化し、Curlハンドルを返します。このハンドルを使用すると、HTTPリクエストを構成および実行できます。

  • curl_share_init() :共有セッションハンドルを初期化し、複数のCurlセッションが設定を共有できるようにします。 Cookie、DNS、SSLセッションなど、共有コンテンツを設定できます。

3。共有セッションを構築する手順

ステップ1:共有セッションを初期化します

まず、 curl_share_init()を使用して共有セッションハンドルを作成する必要があります。

 $share = curl_share_init();

ステップ2:共有オプションを設定します

共有セッションハンドルが作成された後、共有する必要があるオプションを設定できます。一般的な共有オプションは次のとおりです。

  • curlshopt_cookie :Cookieを共有します。

  • curlshopt_dns :共有DNSキャッシュ。

  • curlshopt_ssl :SSLセッションを共有します。

たとえば、共有Cookieを設定します。

 curl_share_setopt($share, CURLSHOPT_COOKIE, true);

ステップ3:カールセッションを初期化します

次に、 curl_init()を使用してCurlセッションハンドルを初期化します。ここでのセッションは、共有セッションに関連付けられており、設定を共有できます。

 $ch = curl_init();

ステップ4:カールオプションを設定します

カールセッションに必要なオプションを設定します。たとえば、URLを設定して結果を返すなど。

 curl_setopt($ch, CURLOPT_URL, "http://m66.net/api/endpoint");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SHARE, $share);  // 共有会話

ステップ5:リクエストを実行します

curl_exec()経由でhttp要求を実行し、結果を取得します。

 $response = curl_exec($ch);
if ($response === false) {
    echo "cURL Error: " . curl_error($ch);
}

ステップ6:セッションを閉じます

リクエストが完了したら、Curlセッションと共有セッションを閉じる必要があります。

 curl_close($ch);
curl_share_close($share);

4.完全なコードの例

<?php

// 初始化共有会話
$share = curl_share_init();
curl_share_setopt($share, CURLSHOPT_COOKIE, true);

// 最初のものを初期化します cURL セッション
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://m66.net/api/endpoint1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_SHARE, $share);
$response1 = curl_exec($ch1);
if ($response1 === false) {
    echo "cURL Error: " . curl_error($ch1);
}
curl_close($ch1);

// 2番目を初期化します cURL セッション
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "http://m66.net/api/endpoint2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_SHARE, $share);
$response2 = curl_exec($ch2);
if ($response2 === false) {
    echo "cURL Error: " . curl_error($ch2);
}
curl_close($ch2);

// 关闭共有会話
curl_share_close($share);
?>

5。注意すべきこと

  • curl_share_init()curl_share_setopt()の間に他の動作干渉がないことを確認してください。

  • 共有セッションは、すべてのカールセッションが完了した後に閉鎖する必要があります。

  • 複数のリクエストを実行するときにセッションを共有するための設定が必要な場合は、各リクエストが同じ共有ハンドルに渡されていることを確認してください。

6。概要

curl_share_init()およびcurl_init()を使用することにより、複数のCurlセッションでデータと設定を共有し、パフォーマンスを最適化し、冗長リクエスト構成を削減できます。共有セッションは、特にCookieとDNSキャッシュを含むシナリオで、高周波リクエストを行う際に効率を大幅に向上させます。

この記事が、PHPでCurlを使用して共有セッションを構築し、コードのパフォーマンスを向上させる方法をよりよく理解するのに役立つことを願っています。