Ich glaube, viele Leute haben Kopfschmerzen über die Funktionen der curl_multi-Familie, die im PHP-Handbuch unklar sind. Es gibt nur wenige Dokumente und die angegebenen Beispiele sind für Sie einfach unmöglich Ich habe auch viele Webseiten durchsucht, konnte aber kein vollständiges Anwendungsbeispiel finden.
curl_multi_add_handle
curl_multi_close
curl_multi_exec
curl_multi_getcontent
curl_multi_info_read
curl_multi_init
curl_multi_remove_hand le
curl_multi_select
Im Allgemeinen sollte der Zweck bei der Verwendung dieser Funktionen offensichtlich darin bestehen, mehrere URLs gleichzeitig anzufordern. Anstatt eine nach der anderen anzufordern, andernfalls ist es besser, eine Schleife durchzuführen, um curl_exec selbst anzupassen.
Die Schritte sind wie folgt zusammengefasst:
Schritt 1: Curl_multi_init aufrufen
Schritt 2: Curl_multi_add_handle in einer Schleife aufrufen
In diesem Schritt ist zu beachten, dass der zweite Parameter von curl_multi_add_handle wird durch Subhandle von curl_init gegeben.
Schritt 3: Rufen Sie weiterhin „curl_multi_exec“ auf.
Schritt 4: Rufen Sie „curl_multi_getcontent“ in einer Schleife auf, um die Ergebnisse nach Bedarf zu erhalten. „Schritt 5: Rufen Sie „curl_multi_remove_handle“ und „curl_close“ für jedes Worthandle auf curl_multi_close
Hier ist ein einfaches Beispiel, das online gefunden wurde. Der Autor nennt es
ty-Beispiel (ich werde später erklären, warum es schmutzig ist): für
mains = array(
foreach ($connomains as $i => $url) {
topt($conn[$i],CURLOPT_RETURNTRANSFER ,1);
while ($active);
print_r($res);
整个使用过程差不多就是这样,但是,这个简单代码有个致命弱点,就是在do循环的那段, 在整个url请求期间是个死循环, 它会轻易导致CPU占用100 % Klicken Sie auf „curl_multi_select“, und wählen Sie „Curl_multi_select“ aus ,但是,php里的
接口ALL_MULTI_PERFORM );
Das obige ist der detaillierte Inhalt vonAnwendung von curl_multi im PHP-Mehrprozess. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!