curl_version

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

curl_versioncURL のバージョンを返す

説明

array curl_version ([ int $age = CURLVERSION_NOW ] )

cURL のバージョンについての情報を返します。

パラメータ

age

返り値

以下の要素からなる連想配列を返します。

インデックス 値の説明
version_number cURL の 24 ビットのバージョン番号
version cURL バージョン番号を表す文字列
ssl_version_number OpenSSL の 24 ビットのバージョン番号
ssl_version OpenSSL バージョン番号を表す文字列
libz_version zlib バージョンを表す文字列
host cURL をビルドしたホストについての情報
age  
features 定数 CURL_VERSION_XXX のビットマスク
protocols cURL がサポートするプロトコル名の配列

例1 curl_version() の例

この例では、cURL でどの機能が使えるのかを調べるために curl_version() の返すビットマスク 'features' を使用します。

<?php
// curl のバージョン配列を取得します
$version curl_version();

// ビットフィールドを使用して、
// 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
-1
nimasdj [AT] yahoo [DOT] com
2 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