Curl_close est une fonction utilisée pour fermer une session Curl. Chaque fois qu'une session CURL est initialisée avec Curl_Init , une ressource Curl est renvoyée. Cette ressource doit être publiée via Curl_close une fois la demande terminée. Si la ressource n'est pas fermée dans le temps, elle peut entraîner une fuite de mémoire ou des déchets de ressources.
<?php
$ch = curl_init('http://gitbox.net/example'); // initialisation cURL Session
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Définissez le contenu de retour sur une chaîne
$response = curl_exec($ch); // mettre en œuvre cURL demander
curl_close($ch); // fermeture cURL Session,Libérer les ressources
?>
Dans l'exemple ci-dessus, Curl_close est utilisé pour fermer la session initialisée par Curl_init pour s'assurer que la ressource est libérée. Cette fonction est généralement appelée immédiatement une fois la demande terminée pour garantir le nettoyage en temps opportun des ressources.
CURL_MULTI_CLOSE est une fonction utilisée pour fermer plusieurs sessions Curl. Il est utilisé avec la série de fonctions Curl_Multi_ * et convient aux scénarios où plusieurs demandes Curl sont exécutées simultanément. Après avoir créé une ressource multi-manche Curl à l'aide de Curl_Multi_Init , vous pouvez ajouter plusieurs sessions Curl au multi-manche via Curl_Multi_Add_Handle , puis exécuter et surveiller plusieurs demandes avec curl_multi_exec . Après avoir terminé l'opération, vous devez utiliser CURL_MULTI_CLOSE pour fermer l'ensemble du multi-mains.
<?php
// initialisation多个 cURL Session
$mh = curl_multi_init();
$ch1 = curl_init('http://gitbox.net/example1');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch1);
$ch2 = curl_init('http://gitbox.net/example2');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch2);
// mettre en œuvre多demander
do {
$status = curl_multi_exec($mh, $active);
} while ($active);
// fermeture所有Session
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
Dans cet exemple, Curl_Multi_Close est utilisé pour fermer toutes les sessions Curl ajoutées aux ressources liées à plusieurs manches et à libérer.
Différente portée de l'application :
Curl_close ne s'applique qu'à une seule ressource de session Curl. Lorsque vous n'avez besoin que de traiter une seule demande, vous pouvez utiliser Curl_close pour fermer la demande.
CURL_MULTI_CLOSE convient aux scénarios où plusieurs demandes Curl sont traitées simultanément. Il ferme une ressource multi-manche et libère toutes les sessions de boucle qui y sont associées.
Libération des ressources :
Curl_close est une ressource utilisée pour libérer une seule session Curl et convient au nettoyage lors du traitement des demandes une par une.
CURL_MULTI_CLOSE est utilisé pour publier des ressources multi-requêtes et convient au nettoyage lors du traitement des demandes simultanées.
Différences de performance :
Curl_close doit fermer les demandes une par une, avec moins de surcharge de performances.
CURL_MULTI_CLOSE doit gérer plusieurs sessions lors de la fermeture de plusieurs demandes, et la surcharge de performances est relativement grande, mais elle convient au nettoyage des ressources lorsque plusieurs demandes sont exécutées simultanément.
Scénarios utilisant CURL_CLOSE :
Lorsque vous n'avez besoin que de lancer une seule demande HTTP, utilisez CURL_CLOSE pour libérer la ressource.
Convient pour quelques demandes d'API simples ou rampant d'une seule page Web.
Scénarios utilisant CURL_MULTI_CLOSE :
Lorsque vous devez exécuter plusieurs demandes HTTP simultanément, utilisez Curl_Multi_Close pour libérer la ressource multi-request.
Convient pour les données par lots rampant ou demandez plusieurs URL différentes en même temps.
La combinaison des fonctions CURL_MULTI_ * peut améliorer considérablement l'efficacité lors de la gestion des tâches de concurrence élevées telles que la rampe par lots ou l'envoi de plusieurs demandes d'API.
CURL_CLOSE et CURL_MULTI_CLOSE sont tous deux utilisés pour fermer les sessions Curl et les ressources gratuites, mais elles sont applicables à différents scénarios. CURL_CLOSE convient à un seul cas de demande, tandis que Curl_Multi_Close convient à un cas de demande simultané. Dans le développement réel, la sélection de la fonction appropriée en fonction des besoins peut améliorer l'efficacité du code et réduire la consommation de ressources.