Maison > développement back-end > tutoriel php > Comment puis-je exécuter des requêtes cURL parallèles pour récupérer efficacement des données de plusieurs URL en PHP ?

Comment puis-je exécuter des requêtes cURL parallèles pour récupérer efficacement des données de plusieurs URL en PHP ?

Linda Hamilton
Libérer: 2024-11-16 22:41:03
original
565 Les gens l'ont consulté

How Can I Execute Parallel cURL Requests to Retrieve Data from Multiple URLs Efficiently in PHP?

PHP : Comment exécuter des requêtes cURL parallèles

Lorsque vous faites face à des situations où vous devez récupérer efficacement des données de plusieurs URL, des requêtes cURL parallèles devenir une nécessité. Dans ce contexte, considérons votre scénario dans lequel vous souhaitez récupérer des données JSON à partir de 15 URL différentes à l'aide de file_get_contents($url).

Votre approche actuelle utilisant une simple boucle pour effectuer des requêtes séquentielles peut entraîner des ralentissements importants dus à la nature synchrone de file_get_contents. Cela signifie que le script doit attendre que chaque requête soit terminée avant de passer à la suivante.

Pour surmonter ce problème, nous pouvons exploiter les requêtes multi-cURL. Voici comment y parvenir :

$nodes = array($url1, $url2, $url3);
$node_count = count($nodes);

$curl_arr = array();
$master = curl_multi_init();

for ($i = 0; $i < $node_count; $i++) {
    $url = $nodes[$i];
    $curl_arr[$i] = curl_init($url);
    curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
    curl_multi_add_handle($master, $curl_arr[$i]);
}

do {
    curl_multi_exec($master, $running);
} while ($running > 0);

for ($i = 0; $i < $node_count; $i++) {
    $results[] = curl_multi_getcontent($curl_arr[$i]);
}

print_r($results);
Copier après la connexion

Ce script crée un contexte multi-curl et y ajoute chaque URL en tant que poignée simple distincte. Il utilise ensuite une boucle pour parcourir toutes les poignées simples, les exécutant simultanément et collectant les résultats. Enfin, il imprime le contenu récupéré de toutes les URL.

En utilisant des requêtes cURL parallèles, vous pouvez améliorer considérablement les performances de votre script et réduire le temps nécessaire pour récupérer les données de plusieurs URL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal