Dans PHP, la fonction Curl_Multi_Init () est utilisée pour initialiser une session qui peut gérer simultanément plusieurs demandes Curl. Grâce à cette fonction, nous pouvons créer une nouvelle poignée Curl_Multi et renvoyer une poignée de ressources. En utilisant cette poignée de session, nous pouvons ajouter plusieurs poignées de requête Curl à la session, atteignant ainsi la fonction de traitement de plusieurs URL en parallèle.
ressource curl_multi_init (void);
En cas de succès, curl_multi_init () renvoie une poignée de session; En cas d'échec, false est retourné.
Voici un exemple simple montrant comment initialiser une session de plusieurs boucles avec la fonction curl_multi_init () et envoyer plusieurs demandes en même temps:
<?php
// Initialiser la session
$mh = curl_multi_init();
// créer URL Liste
$urls = array(
'http://www.example.com/url1',
'http://www.example.com/url2',
);
// créer cURL Manipuler et ajouter à la session
$handles = array();
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$handles[] = $ch;
}
// Exécuter la session cURL Poignée
$active = null;
do {
$result = curl_multi_exec($mh, $active);
} while ($result == CURLM_CALL_MULTI_PERFORM || $active);
// Résultats de traitement
foreach ($handles as $handle) {
$response = curl_multi_getcontent($handle);
// Traitement des données de réponse
echo $response;
// 移除Poignée并关闭 cURL
curl_multi_remove_handle($mh, $handle);
curl_close($handle);
}
// Fermez la session
curl_multi_close($mh);
?>
Le code ci-dessus initialise d'abord une nouvelle session Curl via Curl_Multi_Init () . Ensuite, définissez une liste d'URL et parcourez la liste, créez une poignée de demande Curl pour chaque URL à l'aide de curl_init () et ajoutez-la à la session.
Ensuite, toutes les demandes Curl dans la session sont exécutées via Curl_Multi_Exec () . Une fois la demande terminée, les données de réponse de chaque demande sont obtenues via CURL_MULTI_GETCONTENT () et traitées en outre. Enfin, utilisez curl_multi_remove_handle () pour supprimer la poignée et fermer chaque demande Curl via curl_close () , et enfin fermer toute la session via curl_multi_close () .
En utilisant la fonction curl_multi_init () , les programmes PHP peuvent traiter plusieurs demandes Curl simultanément, améliorant ainsi l'efficacité de l'exécution, en particulier lorsque plusieurs demandes d'API sont requises ou que le téléchargement par lots de données est requis.
La maîtrise de l'utilisation de la fonction Curl_Multi_Init () et ses fonctions connexes vous aideront non seulement à améliorer les capacités de traitement des demandes de réseaux de PHP, mais aussi à approfondir votre compréhension des demandes parallèles et à l'optimisation des performances.
Étiquettes associées:
cURL