In PHP wird die Funktion curl_multi_init () verwendet, um eine Sitzung zu initialisieren, mit der mehrere Curl -Anforderungen gleichzeitig verarbeitet werden können. Durch diese Funktion können wir ein neues Curl_Multi -Handle erstellen und einen Ressourcengriff zurückgeben. Mit diesem Sitzungsgriff können wir der Sitzung mehrere Curl -Anforderungen hinzufügen, wodurch die Funktion der Verarbeitung mehrerer URLs parallel erreicht wird.
Ressourcen curl_multi_init (void);
Wenn er erfolgreich ist, gibt CURL_MULTI_INIT () ein Sitzungshandle zurück. Wenn es gescheitert ist, wird Falsch zurückgegeben.
Hier ist ein einfaches Beispiel, das zeigt, wie eine Sitzung mehrerer Locken mit der Funktion curl_multi_init () initialisiert und gleichzeitig mehrere Anforderungen gesendet werden:
<?php
// Initialisieren Sie die Sitzung
$mh = curl_multi_init();
// erstellen URL Liste
$urls = array(
'http://www.example.com/url1',
'http://www.example.com/url2',
);
// erstellen cURL Handle und zur Sitzung hinzufügen
$handles = array();
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$handles[] = $ch;
}
// Führen Sie die Sitzung aus cURL Handhaben
$active = null;
do {
$result = curl_multi_exec($mh, $active);
} while ($result == CURLM_CALL_MULTI_PERFORM || $active);
// Verarbeitungsergebnisse
foreach ($handles as $handle) {
$response = curl_multi_getcontent($handle);
// Verarbeitungsantwortdaten
echo $response;
// 移除Handhaben并关闭 cURL
curl_multi_remove_handle($mh, $handle);
curl_close($handle);
}
// Schließen Sie die Sitzung
curl_multi_close($mh);
?>
Der obige Code initialisiert zunächst eine neue Curl -Sitzung über curl_multi_init () . Definieren Sie als Nächstes eine URL -Liste und schalten Sie die Liste durch, erstellen Sie für jede URL mit curl_init () ein Curl -Anforderungsgriff und fügen Sie sie der Sitzung hinzu.
Anschließend werden alle Curl -Anfragen in der Sitzung über curl_multi_exec () ausgeführt. Nach Abschluss der Anforderung werden die Antwortdaten jeder Anforderung über curl_multi_getContent () und weiter verarbeitet. Verwenden Sie schließlich curl_multi_remove_handle (), um das Handle zu entfernen und jede Curl -Anforderung über curl_close () zu schließen und schließlich die gesamte Sitzung über curl_multi_close () zu schließen.
Durch die Verwendung der Funktion curl_multi_init () können PHP -Programme mehrere Curl -Anforderungen gleichzeitig bearbeiten, wodurch die Ausführungseffizienz verbessert wird, insbesondere wenn mehrere API -Anforderungen erforderlich sind oder Daten heruntergeladen werden.
Wenn Sie die Verwendung der Funktion curl_multi_init () und deren damit verbundenen Funktionen beherrschen, können Sie nicht nur die Funktionen für die Verarbeitungsfunktionen von PHP verbessern, sondern auch Ihr Verständnis von parallelen Anfragen und Leistungsoptimierung vertiefen.
Verwandte Tags:
cURL