curl_version

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

curl_versionRestituisce informazioni sulla versione di cURL

Descrizione

curl_version(int $age = CURLVERSION_NOW): array

Restituisce informazioni sulla versione di cURL.

Elenco dei parametri

age

Valori restituiti

Restituisce un array associativo con i seguenti elementi:

Indice Descrizione valore
version_number numero della versione di 24 bit di cURL
version numero della versione di cURL, come una stringa
ssl_version_number Numero della versione di 24 bit di OpenSSL
ssl_version Numero della versione di OpenSSL, come una stringa
libz_version Numero della versione di zlib, come una stringa
host Informazioni sull'host dove è stato effettuato il build di cURL
age  
features Una maschera di bit delle costanti CURL_VERSION_XXX
protocols Un array dei nomi dei protocolli supportati da cURL

Esempi

Example #1 Esempio di curl_version()

Questo esempio controllerà quali funzionalità sono disponibili nel build di cURL utilizzando la maschera di bit 'features' restituita da curl_version().

<?php
// Ottiene l'array delle versioni di curl
$version = curl_version();

// Questo sono i bitfield che possono essere usati
// per verificare le caratteristiche nella build di 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) ? ' matches' : ' does not match');
echo
PHP_EOL;
}
?>

add a note add a note

User Contributed Notes 1 note

up
-4
nimasdj [AT] yahoo [DOT] com
9 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