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()を呼び出す必要があります。
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セッションで$ CH1とCH2に設定されているため、リソースを共有できます。 curl_share_init()は、主に並行してリクエストするときにパフォーマンスを改善するために使用され、複数のCurlセッションが同じ構成を共有できます。
違いのポイント | curl_init() | curl_share_init() |
---|---|---|
関数 | Curlセッションハンドルを初期化して、単一のHTTPリクエストを開始する | 複数のセッションの共有リソースハンドルを初期化してリソースを共有する |
返品値 | カールハンドルを返します | リソース共有のために共有ハンドルを返します |
シナリオを使用します | 単一のカールリクエスト | 複数のカール要求間で構成とリソースを共有します |
リソースを共有します | 共有リソースはサポートされていません | 共有接続、Cookie、DNS検索、その他のリソースをサポートします |
閉じたときの操作 | curl_close()を使用して閉じる | curl_share_close()を使用して共有ハンドルを閉じます |
一般に、 curl_init()は単一のCurl要求の初期化に使用され、 Curl_share_init()は複数のCurlセッションの共有リソースを作成するために使用されます。これらはさまざまな方法で使用および適用されますが、 curl_share_init()は、同時リクエストの場合、パフォーマンスを大幅に改善できます。