Maison >développement back-end >tutoriel php >Sortie de PHP8.1 : introduction de curl pour le traitement simultané de plusieurs requêtes

Sortie de PHP8.1 : introduction de curl pour le traitement simultané de plusieurs requêtes

王林
王林original
2023-07-08 21:13:381757parcourir

Publication de PHP8.1 : présentation du traitement simultané de requêtes multiples curl

Récemment, PHP a officiellement publié la dernière version de PHP8.1, qui a introduit une fonctionnalité importante : le traitement simultané de requêtes multiples curl. Cette nouvelle fonctionnalité offre aux développeurs un moyen plus efficace et plus flexible de gérer plusieurs requêtes HTTP, améliorant ainsi considérablement les performances et l'expérience utilisateur.

Dans les versions précédentes, la gestion de plusieurs requêtes nécessitait souvent de créer plusieurs ressources curl et d'utiliser des boucles pour envoyer et recevoir des données respectivement. Bien que cette méthode puisse atteindre l'objectif, elle ne peut pas utiliser pleinement les ressources du système et augmentera également la complexité du codage pour les développeurs.

Dans PHP8.1, une nouvelle série de fonctions curl_multi_* a été introduite. Cette série de fonctions permet aux développeurs d'envoyer plusieurs requêtes de manière asynchrone et de recevoir des réponses en même temps. De cette manière, une requête peut être envoyée pendant qu'une autre attend une réponse, permettant ainsi un traitement simultané des requêtes.

Ci-dessous, regardons un exemple d'utilisation des fonctions curl_multi_* :

$urls = [
    'https://www.example.com/api/1',
    'https://www.example.com/api/2',
    'https://www.example.com/api/3',
    'https://www.example.com/api/4',
];

$resources = [];
$mh = curl_multi_init();

foreach ($urls as $url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_multi_add_handle($mh, $ch);
    $resources[] = $ch;
}

$active = null;
do {
    $status = curl_multi_exec($mh, $active);
    if ($status !== CURLM_CALL_MULTI_PERFORM) {
        curl_multi_select($mh);
    }
} while ($active > 0);

foreach ($resources as $resource) {
    $data = curl_multi_getcontent($resource);
    // 处理响应数据
    echo $data;
    
    curl_multi_remove_handle($mh, $resource);
    curl_close($resource);
}

curl_multi_close($mh);

Dans l'exemple ci-dessus, nous avons créé un tableau contenant plusieurs URL et initialisé la ressource curl_multi et un tableau pour stocker la ressource curl. Nous utilisons ensuite une boucle foreach pour créer une nouvelle ressource curl pour chaque URL et l'ajoutons à la ressource curl_multi via la fonction curl_multi_add_handle. Ensuite, envoyez la demande de manière asynchrone à l'aide de la fonction curl_multi_exec et attendez la réponse à l'aide de la fonction curl_multi_select. Enfin, en parcourant le tableau de ressources curl, utilisez la fonction curl_multi_getcontent pour obtenir les données de réponse et les traiter.

En introduisant curl pour gérer plusieurs requêtes simultanément, PHP8.1 simplifie considérablement le code de traitement de plusieurs requêtes et améliore considérablement les performances. Pour les scénarios d'application qui doivent envoyer plusieurs requêtes HTTP simultanément, notamment lors de la communication avec des API externes, l'ajout de cette nouvelle fonctionnalité constitue sans aucun doute une étape importante.

Résumé :
La version de PHP 8.1 introduit la fonctionnalité importante du traitement simultané par curl de plusieurs requêtes, offrant aux développeurs un moyen efficace et flexible de gérer plusieurs requêtes HTTP. En utilisant la série de fonctions curl_multi_*, plusieurs requêtes peuvent être envoyées et reçues de manière asynchrone, améliorant considérablement les performances du système et l'expérience utilisateur. Les développeurs peuvent désormais gérer plus facilement les requêtes simultanées et simplifier l’écriture du code associé. Cette nouvelle fonctionnalité constitue sans aucun doute une avancée importante pour les applications qui communiquent avec des API externes. Tout le monde est invité à essayer et explorer cette nouvelle fonctionnalité de PHP8.1 pour apporter de meilleures performances et de meilleurs effets à vos applications.

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!

Déclaration:
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