Lorsque vous essayez d'appeler la fonction curl_version () , une erreur similaire à ce qui suit est rencontrée:
<span><span>Fatal error: Uncaught </span><span><span class="hljs-built_in">Error</span></span><span>: Call to undefined </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">curl_version</span></span><span>(</span><span><span class="hljs-params"></span></span><span>)...
</span></span>Cette erreur se produit généralement lorsque l'extension de la boucle n'est pas activée dans un environnement PHP. La bibliothèque Curl intégrée dans PHP est une extension facultative et la fonction Curl_version () ne sera pas utilisée si elle n'est pas installée ou activée.
Vérifiez que l'extension Curl est activée en PHP. Exécutez la commande suivante dans le terminal pour voir si l'extension Curl est répertoriée:
<span><span>php -m | grep curl
</span></span>S'il n'y a pas de sortie, l'extension Curl n'est pas activée.
Activer l'extension Curl:
Pour les systèmes Linux, vous pouvez installer l'extension Curl à l'aide de la commande suivante:
<span><span>sudo apt-get install php-curl
</span></span>ou:
<span><span>sudo yum install php-curl
</span></span>Pour les systèmes Windows, assurez-vous que l' extension de ligne = Curl n'est pas commentée dans le fichier php.ini . S'il y a des commentaires (précédemment avec des demi-colons ; ), vous devez supprimer les commentaires et redémarrer le serveur Web.
Après l'installation et l'activation, redémarrez les serveurs PHP et Web (tels qu'Apache ou Nginx), et essayez à nouveau d'appeler la fonction curl_version () .
Lorsque la fonction curl_version () est appelée, le résultat renvoyé est nul et il n'y a pas d'informations utiles. Cela se produit généralement lorsque l'extension Curl n'est pas correctement installée ou configurée.
La fonction curl_version () dépend de l'extension Curl correctement installée. Si l'extension Curl n'est pas entièrement installée ou est incorrectement configurée, il peut entraîner un retour de NULL .
Une autre raison possible est l'incompatibilité entre la version PHP et l'extension Curl.
Assurez-vous que l'extension Curl est correctement installée et activée. Reportez-vous aux étapes ci-dessus pour confirmer si Curl est valide en PHP.
Vérifiez si les versions des extensions PHP et Curl sont compatibles. Si vous utilisez une ancienne version de PHP, vous devrez peut-être mettre à niveau PHP ou utiliser une extension Curl compatible avec cette version.
Les informations de version renvoyées lorsque curl_version () est appelée est incomplète, comme le manque de support pour SSL ou d'autres protocoles de transport.
La fonctionnalité de Curl dépend des options de configuration du temps de compilation. Si certaines fonctions (telles que SSL, IPv6, Http2, etc.) ne sont pas activées lors de la compilation de PHP, les informations renvoyées par Curl_version () peuvent manquer de support correspondant.
Assurez-vous que les fonctionnalités requises sont activées lors de la compilation de PHP, en particulier la prise en charge SSL pour les extensions de boucle. Il peut être confirmé en vérifiant la sortie de phpinfo () .
Si votre environnement PHP n'a pas certaines fonctionnalités activées, envisagez de recomposer PHP et d'activer les options connexes ou de sélectionner une distribution PHP avec toutes les fonctionnalités de prise en charge.
Lorsque vous utilisez Curl_version () pour obtenir des informations sur la version Curl, il a été constaté qu'il n'y avait pas de protocole HTTPS dans la liste des protocoles , ce qui a entraîné une défaillance lors de la tentative d'exécution d'une demande HTTPS.
Ce problème se produit généralement lorsque l'extension Curl de PHP ne prend pas en charge correctement le protocole SSL ou HTTPS. Curl prend en charge les protocoles HTTPS. Comptez sur la bibliothèque OpenSSL sous-jacente. Si la bibliothèque n'est pas activée ou configurée de manière incorrecte, HTTPS ne sera pas inclus dans la liste des protocoles de curl_version () .
Assurez-vous que la prise en charge SSL est activée lorsque Curl est installé. Vous pouvez vérifier la page phpinfo () pour trouver la section Curl pour confirmer si la prise en charge SSL est activée.
Si la prise en charge SSL n'est pas activée, vous pouvez soit spécifier d'activer la prise en charge OpenSSL lors du recompilation PHP, soit réinstaller l'extension Curl pour PHP et assurer que les fonctionnalités correspondantes sont activées.
Bien que la fonction curl_version () renvoie les informations de version correctes, la demande Curl réelle (telle que curl_exec () ) ne peut toujours pas être exécutée avec succès, et des erreurs telles que le délai de connexion et le rejet du serveur peuvent se produire.
Cela peut être dû au manque de support pour certains protocoles (tels que HTTP / 2 ou SSL) dans la bibliothèque Curl.
Cela peut être dû à des problèmes tels que la configuration du réseau, les paramètres de proxy, les certificats SSL, etc. qui affectent l'exécution des demandes Curl.
Utilisez curl_version () pour obtenir des informations de support de protocole détaillées et confirmez si l'environnement actuel prend en charge le protocole dont vous avez besoin (comme HTTPS).
Vérifiez si les paramètres de proxy affectent l'exécution de la demande Curl. Le proxy peut être configuré en définissant Curl_setopt ($ ch, curlopt_proxy, 'proxy_address') .
Vérifiez les paramètres du certificat SSL du serveur pour vous assurer qu'il n'y a aucun problème tel que les erreurs d'expiration ou de vérification du certificat. La vérification SSL peut être ignorée en définissant Curl_setopt ($ ch, curlopt_ssl_verifypeer, false) (non recommandée dans les environnements de production).
S'il y a un problème de connexion réseau, vérifiez les paramètres du pare-feu du serveur pour vous assurer que le curl peut accéder au serveur cible.