PHP Velho Oeste 2024

curl_version

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

curl_versionObtém informação de versão do cURL

Descrição

curl_version(): array|false

Retorna informação sobre a versão do cURL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array associativo com os seguintes elementos:

Chave Descrição do Valor
version_number Número de 24 bits da versão do cURL
version String com a versão do cURL
ssl_version_number Número de 24 bits da versão do OpenSSL
ssl_version String com a versão do OpenSSL
libz_version String com a versão do zlib
host Informação sobre o servidor onde o cURL foi compilado
age  
features Uma máscara de bits das contantes CURL_VERSION_XXX
protocols Um array de nomes de protocolos suportados pelo cURL

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro opcional age foi removido.
7.4.0 O parâmetro opcional age está defasado; se um valor for passado, será ignorado.

Exemplos

Exemplo #1 Exemplo de curl_version()

Este exemplo verifica quais características estão disponíveis na compilação do cURL usando a máscara de bits 'features' retornada por curl_version().

<?php
// Obtém o array de versão do curl
$version = curl_version();

// Estes são os campos de bit que podem ser usados
// para verificar características na compilação do 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) ? ' presente' : ' ausente');
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