Lorsque vous utilisez Curl, vous passez généralement par les étapes suivantes:
Initialiser une session Curl: curl_init () ;
Définir les options demandées: curl_setopt () ;
Exécuter Curl Request: curl_exec () ;
GET et traitez les données de réponse: obtenez la réponse demandée via curl_exec () ;
Fermez la session Curl: curl_close () .
Où, curl_close () est une fonction qui ferme une session Curl, qui libère des ressources liées à la session Curl. Habituellement, après avoir appelé curl_close () , les données de réponse de la demande Curl ne peuvent plus être accessibles car la session a été close.
La réponse est non .
curl_exec () renvoie les données de réponse demandées. Lorsque vous appelez curl_exec () pour exécuter la demande, vous pouvez stocker les données de réponse renvoyées dans une variable. Si vous essayez d'accéder aux données de réponse après avoir appelé Curl_close () , cela entraînera un comportement erroné ou imprévisible car la session a été close. Par conséquent, la bonne façon est de vous assurer que vous avez enregistré et traité les données de réponse avant d'appeler Curl_close () .
<?php
$ch = curl_init();
// Définir demandé URL et d'autres options
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Exécutez la demande et obtenez les données de réponse
$response = curl_exec($ch);
// fermeture cURL Session
curl_close($ch);
// 在fermeture后尝试访问 $response Les données sont ok,Car il est déjà stocké dans la variable
echo $response;
?>
Dans l'exemple ci-dessus, nous exécutons d'abord la demande Curl et stockons les données de réponse dans la variable de réponse $ . Ensuite, nous appelons curl_close () pour fermer la session Curl, et à ce moment, nous pouvons toujours accéder aux données de la variable de réponse $ car elle a été enregistrée.
Appelez toujours curl_close () après avoir utilisé des données de réponse
Après avoir terminé toutes les opérations sur les données de réponse, appelez curl_close () pour vous assurer que vous n'avez manqué aucun traitement requis. Assurez-vous que vous avez terminé toutes les analyses de données de réponse et autres opérations.
Soyez prudent lorsque vous utilisez curl_exec () pour obtenir des données de réponse
Si vous souhaitez simplement exécuter la demande mais ne vous souciez pas des données de réponse, vous pouvez omettre l'option Curlopt_returntransfer ou la définir sur FALSE . De cette façon, les données de réponse ne seront pas renvoyées, mais seront directement sorties vers le navigateur.
Enregistrer les données de réponse à l'avance
Si vous avez besoin d'utiliser des données de réponse à plusieurs endroits, vous pouvez enregistrer les données de réponse dans une variable après avoir appelé curl_exec () pour vous assurer que les données peuvent être utilisées dans le traitement ultérieur.
N'essayez pas d'accéder aux données de réponse après avoir appelé Curl_close ()
Une fois que Curl_close () est appelé, la session se termine et toutes les ressources liées à la session sont publiées. Tenter d'accéder aux données de réponse après cela peut entraîner une erreur.
La fonction curl_close () est utilisée pour fermer la session Curl et libérer les ressources pertinentes. Après avoir appelé curl_close () , vous ne pouvez plus accéder aux données de réponse pour la session car la session est terminée. Donc, avant d'appeler Curl_close () , assurez-vous d'avoir traité et enregistré les données de réponse. La bonne façon de l'utiliser est: obtenir les données de réponse, puis fermer la session pour éviter d'accéder aux données non valides après la fermeture de la session.