PHP Velho Oeste 2024

curl_version

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

curl_versionLiefert die cURL-Version

Beschreibung

curl_version(): array|false

Gibt Informationen über die cURL-Version zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt ein assoziatives Array mit den folgenden Elementen zurück:

Schlüssel Beschreibung des Werts
version_number cURL 24-Bit Versions-Nummer
version cURL-Version als String
ssl_version_number OpenSSL 24-Bit Versions-Nummer
ssl_version OpenSSL-Version als String
libz_version zlib-Version als String
host Informationen zum Host, auf dem cURL kompiliert wurde
age  
features Eine Bitmaske der CURL_VERSION_XXX-Konstanten
protocols Ein Array der von cURL unterstützten Protokollnamen

Changelog

Version Beschreibung
8.0.0 Der optionale Parameter age wurde entfernt.
7.4.0 Der optionale Parameter age ist veraltet; falls ein Wert übergeben wird, wird er ignoriert.

Beispiele

Beispiel #1 Beispiel für curl_version()

Dieses Beispiel prüft anhand der 'features'-Bitmaske die von curl_version() zurückgegeben wird, welche Features in dieser cURL-Version verfügbar sind.

<?php
// Hole Array mit Versions-Informationen
$version = curl_version();

// Diese Bitfelder können zur Prüfung benutzt werden
$bitfields = Array(
'CURL_VERSION_IPV6',
'CURL_VERSION_KERBEROS4',
'CURL_VERSION_SSL',
'CURL_VERSION_LIBZ'
);


foreach(
$bitfields as $feature)
{
echo
$feature . ($version['features'] & constant($feature) ? ' ja' : ' nein');
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