In PHP ist Curl eine leistungsstarke Bibliothek, mit der wir HTTP -Anfragen senden und Antworten erhalten können. Die Funktion curl_share_init () ist ein Mechanismus, der von Curl zur Initialisierung eines gemeinsam genutzten Curl -Griffs bereitgestellt wird. Teilen Sie ein Curl -Handle, mehrere Curl -Sitzungen können einige Konfigurationsoptionen und Daten freigeben, die den Speicherverbrauch verringern und die Effizienz mehrerer Curl -Sitzungen verbessern können.
Ein Curl Shared -Griff ist ein Griff, der Informationen zwischen mehreren Lockensitzungen teilt. Durch die Verwendung eines gemeinsam genutzten Griffs können wir verschiedene Curl -Sitzungen einige staatliche Informationen (z. B. Cookies oder DNS -Caches) teilen lassen. Dies ist sehr hilfreich für die effiziente Verwaltung mehrerer Curl -Anfragen, insbesondere bei der Behandlung von Situationen, in denen ein häufiger Zugriff auf dieselbe Website erforderlich ist.
Die Funktion curl_share_init () wird verwendet, um einen gemeinsam genutzten Griff zu initialisieren. Diese Funktion erfordert keine Parameter und gibt eine freigegebene Handlungsressource zurück.
$ch_share = curl_share_init();
Nach der Initialisierung des gemeinsam genutzten Griffs können wir die Funktion curl_share_setopt () verwenden, um Optionen für das gemeinsame Griff festzulegen. Diese Optionen können gemeinsam genutzte Cookies, DNS -Caches usw. werden. Wir verwenden die Curlshopt_* -Konstante, um die Freigabeoptionen festzulegen.
Der folgende Code zeigt beispielsweise, wie ein gemeinsam genutztes Cookie festgelegt wird:
curl_share_setopt($ch_share, CURLSHOPT_COOKIE, true);
Nach dem Initialisieren und Einrichten eines gemeinsam genutzten Griffs können wir den gemeinsam genutzten Griff für jede Curl -Sitzung übergeben. Dies lässt diese Lockensitzungen dieselbe Ressource teilen. Das folgende Codebeispiel zeigt, wie ein gemeinsamer Griff zwischen mehreren Curl -Sitzungen freigegeben wird.
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://m66.net/some-path");
curl_setopt($ch1, CURLOPT_SHARE, $ch_share);
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://m66.net/another-path");
curl_setopt($ch2, CURLOPT_SHARE, $ch_share);
// Mehrere Anfragen ausführen
curl_exec($ch1);
curl_exec($ch2);
Nach der Verwendung des gemeinsam genutzten Griffs müssen wir den gemeinsam genutzten Griff schließen, um die Ressource zu freien. Verwenden Sie die Funktion curl_share_close () , um das gemeinsame Griff zu schließen.
curl_share_close($ch_share);
Hier ist ein vollständiges Beispiel, das demonstriert, wie ein gemeinsam genutztes Handle mit Curl_Share_init () initialisiert und zwischen mehreren Curl -Anforderungen freigegeben wird.