English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundlagenanleitung

PHP Fortgeschrittene Anleitung

PHP & MySQL

PHP Referenzhandbuch

PHP curl_multi_exec() Funktion Anleitung und Beispiel

PHP CURL Referenzhandbuch

(PHP 5)

curl_multi_exec — Führe die aktuellen CURL-Verbindungen aus

Beschreibung

int curl_multi_exec ( resource $mh , int &$still_running )

Verarbeite jeden Handle im Stack. Dies kann aufgerufen werden, egal ob der Handle Daten lesen oder schreiben muss.

Parameter

mh

Mehrere CURL-Handles, die von curl_multi_init() zurückgegeben werden.

still_running

Eine Referenz, die ein Zeichen verwendet, um zu bestimmen, ob die Operation noch ausgeführt wird.

Rückgabewert

Ein definiertes CURL-Prädefiniertes Konstanten-CURL-Code.

Hinweis:Diese Funktion gibt nur Fehlerinformationen über den gesamten Batch-Stack zurück. Selbst wenn CURLM_OK zurückgegeben wird, könnte eine einzelne Übertragung möglicherweise ein Problem haben.

Online-Beispiel

Dieser Beispielcode wird 2 Füge mehrere CURL-Handles hinzu, fügen Sie sie dem Batch-Handle hinzu und führen Sie sie parallel aus.

<?php
// Erstelle ein Paar CURL-Ressourcen
$ch1 = curl_init();
$ch2 = curl_init();
// Setze die URL und die entsprechenden Optionen
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// Erstelle einen Batch-CURL-Handle
$mh = curl_multi_init();
// hinzufügen2ein Handle
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
$active = null;
// Führe die Batch-Handles aus
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}
// Schließe alle Handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

PHP CURL Referenzhandbuch