Curl_Close関数は、現在のCurlセッションを閉じ、セッションに関連するすべてのリソースを解放するために使用されます。セッションを閉じた後、セッションハンドルを通じてリクエストを送信できなくなりました。 Curl_Closeは通常、Curl操作を完了した後に呼び出され、リソースがクリーニングされ、メモリリークが回避されるようにします。
使用例:
$ch = curl_init();
// 設定 cURL オプション
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 埋め込む cURL 聞く
$response = curl_exec($ch);
// 閉鎖 cURL セッション
curl_close($ch);
上記の例では、最初にcurl_initを介してCurlセッションを初期化します。その後、要求されたURLおよびリターン転送オプションが設定され、リクエストはcurl_execを介して実行されます。すべての操作が完了したら、 curl_closeを使用してセッションを閉じてリソースを解放します。
Curl_Closeを呼び出した後、Curlハンドルは無効になり、使用できなくなります。セッションを閉じた後にハンドルを再度使用しようとすると、エラーが発生します。
curl_closeとは異なり、 curl_reset関数はCurlセッションを閉じませんが、初期状態にリセットします。 Curl_resetを呼び出した後、Curlセッションのすべてのオプション(URL、要求方法、データなど)がクリアされ、デフォルト値に復元されます。この関数を使用すると、新しいCurlセッションを再開始することなく、同じセッションハンドルを使用して新しいリクエストを再開できます。
使用例:
$ch = curl_init();
// 設定 cURL オプション
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 埋め込む第一个聞く
$response1 = curl_exec($ch);
// リセット cURL セッション
curl_reset($ch);
// 設定新的 cURL オプション
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example2");
// 埋め込む第二个聞く
$response2 = curl_exec($ch);
// 閉鎖 cURL セッション
curl_close($ch);
この例では、 curl_initを介してCurlセッションを初期化し、最初のリクエストを実行します。最初のリクエストを実行した後、以前の設定をcurl_resetを介してクリアし、2番目のリクエストを実行するために新しいURLおよびその他のオプションをリセットしました。このようにして、 curl_resetを使用すると、Curlセッションを再審理せずに同じセッションを再利用できます。
curl_closeとcurl_resetは、curlセッションを管理するために使用される関数ですが、動作は異なります。
セッションとリセットセッションを閉じる:
Curl_Closeは、Curlセッションを完全に閉じ、関連するすべてのリソースをリリースするために使用され、その後もセッションを使用し続けることはできません。
curl_resetはセッションのリセットに使用され、リソースをリリースしませんが、設定オプションのみをクリアし、同じセッションハンドルを使用し続けることができます。
セッションのライフサイクル:
curl_closeは、Curlセッションのライフサイクルの終わりであり、すべての操作が完了した後、リソースのクリーニングに適しています。
CURL_RESETは、複数のCurlセッションの初期化を繰り返しないように、同じセッションで複数のリクエストが実行される場合、セッションオプションをリセットするのに適しています。
パフォーマンスに関する考慮事項:
複数の要求が必要で、各リクエストの構成が異なる場合、 curl_resetを使用すると、 curl_initとcurl_closeへの頻繁な呼び出しを避けてパフォーマンスが向上します。
リクエストを一度だけ実行し、セッションを再利用する必要がない場合は、 curl_closeを使用してリソースを解放する必要があります。
curl_closeを使用:リクエストを完了し、セッションを使用し続ける必要がなくなったら、 Curl_closeを呼び出してセッションを閉じてリソースを解放する必要があります。通常、スクリプトの終了直後またはリクエストの直後に呼び出されます。
curl_resetを使用:異なるリクエストに同じセッションハンドルを複数回使用する必要がある場合、 curl_resetを使用してセッションオプションをリセットできます。