Signatur
Beschreibung
curl_version() gibt ein assoziatives Array zurück, das detaillierte Informationen über die aktuell verwendete cURL-Bibliothek enthält. Dazu gehören die cURL-Version selbst, die Version der libssl, die Version von libz (zlib) sowie eine Liste der unterstützten Protokolle und SSL-Versionen.
Die Funktion ist besonders nützlich, um zur Laufzeit zu prüfen, ob bestimmte Features oder Protokolle (z. B. HTTP/2, HTTPS, FTP) von der installierten cURL-Version unterstützt werden, bevor man entsprechende Anfragen ausführt. So können Kompatibilitätsprobleme frühzeitig erkannt werden.
Das zurückgegebene Array enthält unter anderem die Schlüssel version (cURL-Version als String), version_number (als Integer), ssl_version, libz_version, protocols (Array der unterstützten Protokolle) sowie features (Bitfeld der unterstützten Features wie CURL_VERSION_HTTP2).
Der Parameter age ist intern für die cURL-Bibliothek und sollte in der Regel nicht manuell gesetzt werden. Der Standardwert CURLVERSION_NOW ist stets korrekt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $age | int | CURLVERSION_NOW | Interne Versionsnummer für die cURL-Bibliothek. Sollte den Standardwert CURLVERSION_NOW behalten. Nur in sehr speziellen Szenarien relevant. |
Rückgabewert
false zurückgegeben. Das Array enthält u. a. die Schlüssel version, version_number, host, features, ssl_version, ssl_version_number, libz_version, protocols und ares.Beispiele
Grundlegende Verwendung: cURL-Version ausgeben
<?php
$info = curl_version();
if ($info !== false) {
echo 'cURL-Version: ' . $info['version'] . PHP_EOL;
echo 'SSL-Version: ' . $info['ssl_version'] . PHP_EOL;
echo 'zlib-Version: ' . $info['libz_version'] . PHP_EOL;
echo 'Unterstützte Protokolle: ' . implode(', ', $info['protocols']) . PHP_EOL;
} else {
echo 'cURL ist nicht verfügbar.';
}
HTTP/2-Unterstützung prüfen
<?php
$info = curl_version();
if ($info !== false) {
$supportsHttp2 = ($info['features'] & CURL_VERSION_HTTP2) !== 0;
if ($supportsHttp2) {
echo 'HTTP/2 wird von dieser cURL-Installation unterstützt.' . PHP_EOL;
} else {
echo 'HTTP/2 wird NICHT unterstützt. Upgrade erforderlich.' . PHP_EOL;
}
// Weitere Feature-Flags prüfen
$supportsHttps = in_array('https', $info['protocols']);
echo 'HTTPS-Protokoll verfügbar: ' . ($supportsHttps ? 'Ja' : 'Nein') . PHP_EOL;
}
Vollständige Versionsinfo als Debug-Ausgabe
<?php
$info = curl_version();
if ($info !== false) {
echo 'cURL Host: ' . $info['host'] . PHP_EOL;
echo 'cURL Version: ' . $info['version'] . PHP_EOL;
echo 'Version-Integer: ' . $info['version_number'] . PHP_EOL;
echo 'Features-Bitfeld:' . decbin($info['features']) . PHP_EOL;
// Mindest-Versionscheck
if ($info['version_number'] >= 0x074200) { // 7.66.0
echo 'cURL-Version ist ausreichend aktuell.' . PHP_EOL;
} else {
echo 'Warnung: cURL-Version veraltet!' . PHP_EOL;
}
}
// Wichtig · Fallstricke
Feature-Flags: Das Feld features ist ein Bitfeld. Verfügbare Konstanten sind z. B. CURL_VERSION_HTTP2, CURL_VERSION_HTTP3, CURL_VERSION_IPV6, CURL_VERSION_KERBEROS4, CURL_VERSION_LIBZ, CURL_VERSION_SSL und weitere. Nicht alle Konstanten sind in jeder PHP-Version definiert.
Version als Integer: version_number kodiert die Version als 0xXXYYZZ (Major, Minor, Patch). Ein Vergleich wie $info['version_number'] >= 0x073800 (= 7.56.0) ist eine zuverlässige Methode zur Versionsüberprüfung.
Deprecated seit PHP 8.0: Der Parameter age hat keine nennenswerte Funktion mehr für PHP-Entwickler und sollte weggelassen werden.