PHP Velho Oeste 2024

curl_version

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

curl_versioncURL のバージョンを返す

説明

curl_version(): array|false

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

パラメータ

この関数にはパラメータはありません。

戻り値

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

キー 値の説明
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 がサポートするプロトコル名の配列

変更履歴

バージョン 説明
8.0.0 オプションの引数 age が削除されました。
7.4.0 オプションの引数 age は推奨されなくなりました。 値を渡すことができますが、無視されます。

例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
-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