International PHP Conference 2015

curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_versionObtiene la información de la versión de cURL

Descripción

array curl_version ([ int $age = CURLVERSION_NOW ] )

Devuelve información acerca de la versión de cURL.

Parámetros

age

Valores devueltos

Devuelve un array asociativo con los siguientes elementos:

Índice Valor descriptivo
version_number -Número de versión cURL 24 bits
version Número de versión cURL, como string
ssl_version_number Número de versión OpenSSL 24 bits
ssl_version Número de versión OpenSSL, como string
libz_version Número de versión zlib version, como cadena
host Información acerca del host donde se compiló cURL
age  
features Un máscara de las constantes CURL_VERSION_XXX
protocols Un array de los nombres de protocolos soportados por cURL

Ejemplos

Ejemplo #1 ejemplo de curl_version()

Este ejemplo comprueba que características están disponibles en esta versión de cURL usando la máscara 'features' devuelta por curl_version().

<?php
// Obtener array de la versión de curl
$version curl_version();

// Estos son los campos que se pueden usar para 
// comprobar ciertas caracerísticas para esta versión de 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) ? ' coincide' ' no coincide');
    echo 
PHP_EOL;
}
?>

add a note add a note

User Contributed Notes 1 note

up
0
nimasdj [AT] yahoo [DOT] com
1 month 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