Position actuelle: Accueil> Derniers articles> Php curl_multi_add_handle () Fonction: comment gérer efficacement les séances de manche en curl

Php curl_multi_add_handle () Fonction: comment gérer efficacement les séances de manche en curl

M66 2025-06-19

Php curl_multi_add_handle () Fonction: comment gérer efficacement les séances de manche en curl

Dans le développement des demandes de réseau, la bibliothèque de fonctions Curl en PHP est l'une des bibliothèques d'outils les plus couramment utilisées. Il fournit de nombreuses fonctions pour effectuer une variété de demandes HTTP, y compris les demandes GET et Post, la définition d'en-têtes de demande, l'envoi et la réception de cookies, etc.

Pendant le développement, nous devons souvent envoyer plusieurs demandes en même temps. Si chaque demande utilise une poignée de boucle distincte, cela peut entraîner un gaspillage de ressources. Pour gérer efficacement plusieurs demandes, PHP fournit la fonction CURL_MULTI_ADD_HANDLE (), qui peut ajouter plusieurs poignées Curl à une session, simplifiant la gestion et l'amélioration de l'efficacité.

curl_multi_add_handle () Syntaxe de la fonction

La syntaxe de base de la fonction curl_multi_add_handle () est la suivante:

 resource curl_multi_add_handle ( resource $mh, resource $ch )

Description du paramètre:

  • $ MH : poignée de session de boucle initialisée.
  • $ Ch : Une nouvelle poignée de boucle qui doit être ajoutée à la session.

La fonction de cette fonction est d'ajouter la nouvelle poignée de curl $ Ch à la poignée de session $ MH. La valeur de retour est une manche multidactive pour la gestion ultérieure.

curl_multi_add_handle () Exemple d'utilisation

Voici un exemple de code utilisant la fonction Curl_Multi_Add_Handle ():

 <?php
// Initialiser uncURLPoignée de session
$mh = curl_multi_init();
<p>// Créez le premiercURLPoignée<br>
$ch1 = curl_init();<br>
curl_setopt($ch1, CURLOPT_URL, "<a rel="noopener" target="_new" class="" href="https://www.example.com/api1">https://www.example.com/api1</a>");<br>
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);</p>
<p>// Mettez le premiercURLPoignée添加到会话中<br>
curl_multi_add_handle($mh, $ch1);</p>
<p>// Créer une secondecURLPoignée<br>
$ch2 = curl_init();<br>
curl_setopt($ch2, CURLOPT_URL, "<a rel="noopener" target="_new" class="" href="https://www.example.com/api2">https://www.example.com/api2</a>");<br>
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);</p>
<p>// Mettez le deuxièmecURLPoignée添加到会话中<br>
curl_multi_add_handle($mh, $ch2);</p>
<p>// Exécution de boucle jusqu&#39;à ce que toutes les demandes soient remplies<br>
do {<br>
$status = curl_multi_exec($mh, $running);<br>
} while ($status === CURLM_CALL_MULTI_PERFORM || $running);</p>
<p>// Obtenez le résultat de la première demande<br>
$response1 = curl_multi_getcontent($ch1);<br>
echo "Response 1: " . $response1;</p>
<p>// Obtenez le résultat de la deuxième demande<br>
$response2 = curl_multi_getcontent($ch2);<br>
echo "Response 2: " . $response2;</p>
<p>// 关闭Poignée de session<br>
curl_multi_remove_handle($mh, $ch1);<br>
curl_multi_remove_handle($mh, $ch2);<br>
curl_multi_close($mh);<br>
?>

Dans l'exemple ci-dessus, nous initialisons d'abord une poignée de session Curl $ MH à l'aide de la fonction Curl_Multi_Init (). Ensuite, deux manches Curl indépendantes $ ch1 et $ ch2 sont créées et leurs paramètres de demande sont définis. Nous utilisons ensuite la fonction curl_multi_add_handle () pour ajouter ces deux poignées à la session. Avec la fonction curl_multi_exec (), nous exécutons plusieurs demandes dans une boucle jusqu'à ce que toutes les demandes soient remplies. Enfin, le résultat de chaque demande est obtenu via la fonction curl_multi_getContent () et le sort.

Résumer

La fonction Curl_Multi_Add_Handle () est un outil important en PHP pour gérer plusieurs poignées Curl. Il peut améliorer l'efficacité des demandes de réseau et optimiser la structure du code. Dans le développement réel, nous pouvons également combiner des fonctions telles que curl_multi_remove_handle () et curl_multi_close () pour améliorer davantage le flux de traitement des demandes de réseau.

En utilisant rationnellement la fonction curl_multi_add_handle (), nous pouvons gérer et exécuter plusieurs demandes HTTP plus efficacement dans PHP, améliorant les performances du programme et la maintenabilité.