PHP Velho Oeste 2024

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_versionRetourne la version courante de cURL

Description

curl_version(): array|false

Retourne des informations sur la version cURL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Clé Description de la valeur
version_number numéro de version cURL 24 bit
version numéro de version cURL, sous la forme d'une chaîne de caractères
ssl_version_number numéro de version OpenSSL 24 bit
ssl_version numéro de version OpenSSL, sous la forme d'une chaîne de caractères
libz_version numéro de version zlib, sous la forme d'une chaîne de caractères
host Informations sur l'hôte sur lequel cURL a été construit
age  
features Un masque de constantes CURL_VERSION_XXX
protocols Un tableau de noms de protocoles supportés par cURL

Historique

Version Description
8.0.0 Le paramètre optionnel age a été supprimée.
7.4.0 Le paramètre optionnel age est obsolète ; si une valeur est fournit, elle est ignoré.

Exemples

Exemple #1 Exemple avec curl_version()

Cet exemple analyse les fonctionnalités disponibles dans la version courante de cURL en utilisant le masque 'features' retourné par la fonction curl_version().

<?php
// Récupère la version de cURL, sous la forme d'un tableau
$version = curl_version();

// Voici les champs qui peuvent être utilisés
// afin de vérifier les fonctionnalités présentes dans cURL
$bitfields = Array(
'CURL_VERSION_IPV6',
'CURL_VERSION_KERBEROS4',
'CURL_VERSION_SSL',
'CURL_VERSION_LIBZ'
);


foreach(
$bitfields as $feature)
{
echo
$feature . ($version['features'] & constant($feature) ? ' présente' : ' absente');
echo
PHP_EOL;
}
?>

add a note add a note

User Contributed Notes 1 note

up
-4
nimasdj [AT] yahoo [DOT] com
8 years ago
If you want to check if your curl supports ssl, it is not good idea to go with curl_version()['ssl_version'],
e.g.
<?php
if (stripos(curl_version()['ssl_version'], "openssl") !== false) {
?>
as curl says here http://curl.haxx.se/docs/faq.html#Does_curl_work_build_with_other it may use other ssl library than OpenSSL (which does not have anything to do with that separated openssl extension, curl has its own openssl library) so as described here http://curl.haxx.se/libcurl/c/curl_version_info.html it is better to go with CURL_VERSION_SSL bitmask check rather than curl_version()['ssl_version']. Note that not all of those constants stated on official cURL website are available in php, but only these four constants:

[CURL_VERSION_IPV6] => 1
[CURL_VERSION_KERBEROS4] => 2
[CURL_VERSION_SSL] => 4
[CURL_VERSION_LIBZ] => 8

I tested this on Windows by disabling "openssl" extension in php.ini and noticed curl has nothing to do with that separated openssl extension but it has its own openssl, in other word, disabling openssl extension does not affect on curl_version()['ssl_version']. So if you want to check if curl has support for ssl, you should not rely on existence of that separated openssl extension and above I explained you should not rely on curl_version()['ssl_version'] neither. The only reliable way is CURL_VERSION_SSL bitmask checking:
<?php
if (!curl_version()['features'] & CURL_VERSION_SSL) {
    echo
"SSL is not supported with this cURL installation.";
}
?>
To Top