Heim  >  Artikel  >  Backend-Entwicklung  >  Anwendung von curl_multi im PHP-Mehrprozess

Anwendung von curl_multi im PHP-Mehrprozess

大家讲道理
大家讲道理Original
2017-05-28 09:37:581981Durchsuche

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

dir

ty-Beispiel (ich werde später erklären, warum es schmutzig ist):

Anwendung von curl_multi im PHP-Mehrprozess/*<br/><img src=für

 curl-multi von PHP, getestet auf PHP 5.0.0RC1 CLI / FreeBSD 5.2.1
Anwendung von curl_multi im PHP-Mehrprozess*/<br/><img src=mains = array(
Anwendung von curl_multi im PHP-MehrprozessAnwendung von curl_multi im PHP-MehrprozessAnwendung von curl_multi im PHP-MehrprozessAnwendung von curl_multi im PHP-Mehrprozess);<br/><img src=foreach ($connomains as $i => $url) {
Anwendung von curl_multi im PHP-Mehrprozess     $conn[$i]=curl_init($url);<br/><img src=topt($conn[$i],CURLOPT_RETURNTRANSFER ,1);
Anwendung von curl_multi im PHP-Mehrprozess      curl_multi_add_handle ($mh,$conn[$i]);<br/><img src=while ($active);
Anwendung von curl_multi im PHP-Mehrprozess<br/><img src= print_r($res);

 

整个使用过程差不多就是这样,但是,这个简单代码有个致命弱点,就是在do循环的那段, 在整个url请求期间是个死循环, 它会轻易导致CPU占用100 % Klicken Sie auf „curl_multi_select“, und wählen Sie „Curl_multi_select“ aus ,但是,php里的

接口

和用法确与C中有不同.把上面do的那段改成下面这样:

Anwendung von curl_multi im PHP-Mehrprozess do {<br/><img src=ALL_MULTI_PERFORM );
Anwendung von curl_multi im PHP-Mehrprozess while ($active and $mrc ​​​​== CURLM_OK) {<br/><img src=

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn