php中foreach curl实现多线程例子
多线程是php不支持的但我们可以通过foreach来伪多线程了,但这个伪多线程速度不一定比单线程要单到哪里去了,具体来看个例子。
在利用foreach语句循环图片URL,并通过CURL将所有图片进行本地保存的函数时 ,出现了只能采集到一个的问题。现将foreach和CURL结合进行多URL请求的方法进行下总如。
方法1:循环请求
$sr=array(url_1,url_2,url_3); foreach ($sr as $k=>$v) { $curlPost=$v.'?f=传入参数'; $ch = curl_init($curlPost) ; curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回 curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回 $data = curl_exec($ch) ; echo $k.'##:'.$data.'<br>'; } curl_close($ch);
上面代码需要特别注意的是,curl_close 一定要放在foreach循环结束的外面,如果放在里面的话,就会出现我上面提到的多个IMGURL ,只能采集到一个URL的问题。
方法2:多线程循环
<?php multi_threads_request($nodes){ $mh = curl_multi_init(); $curl_array = array(); foreach($nodes as $i => $url) { $curl_array[$i] = curl_init($url); curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $curl_array[$i]); } $running = NULL; do { usleep(10000); curl_multi_exec($mh,$running); } while($running > 0); $res = array(); foreach($nodes as $i => $url) { $res[$url] = curl_multi_getcontent($curl_array[$i]); } foreach($nodes as $i => $url){ curl_multi_remove_handle($mh, $curl_array[$i]); } curl_multi_close($mh); return $res; } print_r(multi_threads_request(array( 'http://www.phprm.com', 'http://qq.phprm.com', ));
这里主要利用curl_multi_init()实现多个url 的请求,不过由于php自身并不支持多线程。所以伪多线程速度也不见得会比单线程快。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



1. Der Unterschied zwischen Iterator und foreach ist der polymorphe Unterschied (die unterste Ebene von foreach ist Iterator ein Schnittstellentyp, und es ist egal, ob for und foreach der Typ bekannt ist). 1. Warum heißt es, dass die unterste Ebene von foreach der von Iterator geschriebene Code ist: 2. Der Unterschied zwischen „remove in foreach“ und „iterator“. im Alibaba Java Development Manual, aber in Fall 1 wird kein Fehler gemeldet, und in Fall 2 wird zuerst ein Fehler gemeldet (java. util.ConcurrentModificationException).

Die Schritte für PHP, um die Nummer der foreach-Schleife zu bestimmen: 1. Erstellen Sie ein Array von „$fruits“; 2. Erstellen Sie eine Zählervariable „$counter“ mit einem Anfangswert von 0. 3. Verwenden Sie „foreach“, um eine Schleife durchzuführen durch das Array und Erhöhen Sie den Wert der Zählervariablen im Schleifenkörper und geben Sie dann jedes Element und seinen Index aus. 4. Geben Sie den Wert der Zählervariablen außerhalb der „foreach“-Schleife aus, um zu bestätigen, welches Element die Schleife erreicht.

Die chinesische Bedeutung von request ist „request“. Es ist eine globale Variable in PHP und ein Array, das „$_POST“, „$_GET“ und „$_COOKIE“ enthält. Die Variable „$_REQUEST“ kann per POST oder GET übermittelte Daten und COOKIE-Informationen abrufen.

So verwenden Sie die Funktion urllib.request.urlopen() in Python3.x, um eine GET-Anfrage zu senden. Bei der Netzwerkprogrammierung müssen wir häufig Daten von einem Remote-Server erhalten, indem wir eine HTTP-Anfrage senden. In Python können wir die Funktion urllib.request.urlopen() im Modul urllib verwenden, um eine HTTP-Anfrage zu senden und die vom Server zurückgegebene Antwort zu erhalten. In diesem Artikel wird die Verwendung vorgestellt

In diesem Artikel wird ausführlich erläutert, wie PHP nach dem Umdrehen eines Schlüsselwerts ein Array zurückgibt. Der Herausgeber hält dies für recht praktisch, daher teile ich es Ihnen als Referenz mit. Ich hoffe, dass Sie nach dem Lesen dieses Artikels etwas gewinnen können. PHP-Schlüsselwert-Flip Der Array-Schlüsselwert-Flip ist eine Operation für ein Array, bei der die Schlüssel und Werte im Array ausgetauscht werden, um ein neues Array mit dem ursprünglichen Schlüssel als Wert und dem ursprünglichen Wert als Schlüssel zu generieren. Implementierungsmethode In PHP können Sie das Schlüsselwert-Umdrehen eines Arrays mit den folgenden Methoden durchführen: array_flip()-Funktion: Die array_flip()-Funktion wird speziell für Schlüsselwert-Umdrehungsvorgänge verwendet. Es erhält ein Array als Argument und gibt ein neues Array mit vertauschten Schlüsseln und Werten zurück. $original_array=[

1. Erstellen Sie eine neue Datei namens request.js und importieren Sie Axios: importaxiosfrom'axios'; 2. Erstellen Sie eine Funktion namens request und exportieren Sie sie: Dadurch wird eine Funktion namens request erstellt und exportiert. Richten Sie eine neue Axios-Instanz mit einer Basis-URL ein . Um Timeout-Einstellungen in einer umschlossenen Axios-Instanz hinzuzufügen, können Sie beim Erstellen der Axios-Instanz die Timeout-Option übergeben. exportconstrequest=axios.create({baseURL:'https://example.

Das Request-Objekt in PHP ist ein Objekt, das zur Verarbeitung von HTTP-Anfragen verwendet wird, die vom Client an den Server gesendet werden. Über das Request-Objekt können wir die Anforderungsinformationen des Clients abrufen, z. B. die Anforderungsmethode, die Anforderungsheaderinformationen, die Anforderungsparameter usw., um die Anforderung zu verarbeiten und zu beantworten. In PHP können Sie globale Variablen wie $_REQUEST, $_GET, $_POST usw. verwenden, um angeforderte Informationen zu erhalten, aber diese Variablen sind keine Objekte, sondern Arrays. Um Anfrageinformationen flexibler und bequemer bearbeiten zu können, können Sie dies tun

Request in PHP ist eine super globale Variable in PHP. Sie wird zum Sammeln von Daten verwendet, die von HTML-Formularen und Parametern in URLs übermittelt werden. Sie kann Daten aus GET- und POST-Anfragen abrufen ein assoziatives Array, wobei die Schlüssel die Namen der Formularfelder und die Werte die Werte der Formularfelder sind. Bei Verwendung der Variablen $_request sollten vom Benutzer eingegebene Daten immer validiert und gefiltert werden, um Sicherheitsprobleme zu vermeiden.
