Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung der Verwendung von CurlShopt_unshare: Wie kann man die Funktion curl_share_init korrekt verwenden, um die Freigabe von Ressourcen abzubrechen?

Detaillierte Erläuterung der Verwendung von CurlShopt_unshare: Wie kann man die Funktion curl_share_init korrekt verwenden, um die Freigabe von Ressourcen abzubrechen?

M66 2025-07-08

In einer Multithread- oder gleichzeitigen Anfrage -Umgebung ermöglicht Curl verschiedene Curl -Sitzungen, um einige Ressourcen auszutauschen. Verwenden Sie beispielsweise die Funktion curl_share_init, um ein freigegebenes Handle zu erstellen und mehrere Curl -Anforderungen zum Freigeben von Verbindungspools oder Cookies über Curl_Setopt zu konfigurieren. Curlshopt_unshare ist eine Option, die sich auf ein freigegebenes Handle bezieht, um die Ressourcenfreigabe zwischen Curl -Sitzungen zu stornieren.

Die Rolle von Curlshopt_unshare besteht darin, anzuzeigen, dass Curl keine gemeinsam genutzten Ressourcen mehr verwendet. Es kann auf verschiedene Ressourcen wie Cookies, DNS, SSL usw. angewendet werden. Mit dieser Option können Sie mehrere Anforderungen an Ihren Anforderungen entfernen, sodass jede Anfrage unabhängig ausgeführt werden kann.

Wie verwende ich curl_share_init und curlshopt_unshare?

Zunächst müssen wir einen gemeinsam genutzten Ressourcenhandle mit der Funktion curl_share_init initialisieren. Konfigurieren Sie als Nächstes die Freigabe von Ressourcen über die Funktion curl_setopt und stornieren Sie schließlich die Freigabe über Curlshopt_unshare.

Schritt 1: Initialisieren Sie die gemeinsam genutzten Ressourcen

 // Initialisieren Sie einen gemeinsam genutzten Griff
$sh = curl_share_init();

// Legen Sie den gemeinsam genutzten Ressourcentyp fest(Wenn geteilt Cookie)
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

In diesem Schritt erstellen wir ein gemeinsam genutztes Handle $ SH und setzen den gemeinsam genutzten Ressourcenart. Zum Beispiel teilen wir hier Cookies (curl_lock_data_cookie).

Schritt 2: Konfigurieren Sie mehrere Ressourcen für die Freigabe von Curl Session Sharing

 // Initialisierung cURL Sitzung 1
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, 'http://m66.net/page1');
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Initialisierung cURL Sitzung 2
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, 'http://m66.net/page2');
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Eine Anfrage ausführen
curl_exec($ch1);
curl_exec($ch2);

In diesem Schritt erstellen wir zwei Curl -Sitzungen $ CH1 und $ CH2 und lassen sie Ressourcen über curl_setopt ($ ch, curlopt_share, $ sh) in $ sh (z. B. Share Cookies) teilen. Zu diesem Zeitpunkt teilen die beiden Anfragen denselben Cookie.

Schritt 3: Verwenden Sie Curlshopt_unshare, um die Freigabe zu stornieren

Wenn wir in einigen Fällen nicht geschafft werden müssen, können wir curlshopt_unshare verwenden.

 // Teilen abbrechen Cookie
curl_share_setopt($sh, CURLSHOPT_UNSHARE, CURL_LOCK_DATA_COOKIE);

// Erstellen Sie eine neue cURL Sitzung,Unabhängige Ressourcen
$ch3 = curl_init();
curl_setopt($ch3, CURLOPT_URL, 'http://m66.net/page3');
curl_exec($ch3);

In diesem Schritt haben wir das freigegebene Cookie von curl_share_setopt ($ sh, curlshopt_unshare, curl_lock_data_cookie) abgesagt. In der nächsten Curl -Sitzung (z. B. $ CH3 ) werden keine Cookies mehr mit der vorherigen Sitzung geteilt.

Notizen bei Verwendung von curlshopt_unshare

  1. UNSHARE SCOPE : CURLSHOPT_UNSHARE CRANDS -Teilen nur bestimmte Arten von Ressourcen wie Cookies, DNS oder SSL. Sie können wählen, ob Sie die gemeinsame Nutzung eines bestimmten Ressourcentyps entsprechend den tatsächlichen Anforderungen stornieren möchten.

  2. Lebenszyklus eines gemeinsam genutzten Griffs : Das Abbrechen einer gemeinsam genutzten Ressource zerstört nicht das gemeinsame Griff. Wenn Sie keinen gemeinsam genutzten Griff mehr benötigen, können Sie den gemeinsam genutzten Griff über die Funktion curl_share_cleanup zerstören.

  3. Auswirkungen von gleichzeitigen Anfragen : Im Fall von Multi-Thread-oder gleichzeitigen Anfragen kann die rationale Verwendung von Curlshopt_unshare unnötige Datenaustausch zwischen verschiedenen Anforderungen vermeiden und so die Flexibilität und Sicherheit der Systeme verbessern.

abschließend

Curlshopt_unshare ist eine sehr praktische Curl -Option, mit der wir die Ressourcenfreigabe zwischen mehreren Curl -Sitzungen absagen können. Durch rationales Verwenden von Curl_Share_init und curl_setopt, um gemeinsam genutzte Ressourcen zu konfigurieren, kann die Verwendung von Ressourcen effektiv verwaltet werden. In praktischen Anwendungen kann die Entscheidung, ob die Freigabe von Ressourcen basierend auf den Anforderungen storniert werden, die Programmflexibilität und -leistung verbessern.