Start · Sprachen · PHP · Referenz · curl_share_strerror

curl_share_strerror

Funktion

Gibt eine menschenlesbare Fehlermeldung als String zurück, die den angegebenen cURL-Share-Fehlercode beschreibt.

seit PHP 7.1.0 Kategorie: http

Signatur

curl_share_strerror(int $error_code): ?string

Beschreibung

curl_share_strerror() übersetzt einen numerischen Fehlercode eines cURL-Share-Handles in eine lesbare englischsprachige Fehlermeldung. Die Funktion ist das Share-Handle-Äquivalent zu curl_strerror() und arbeitet speziell mit Fehlercodes, die beim Umgang mit curl_share_init() und verwandten Funktionen auftreten können.

cURL-Share-Handles ermöglichen es, bestimmte Daten (z. B. Cookies, DNS-Cache, SSL-Session-Daten) zwischen mehreren cURL-Handles zu teilen. Treten dabei Fehler auf, liefern Funktionen wie curl_share_setopt() entsprechende Fehlercodes, die mit curl_share_strerror() in verständliche Texte umgewandelt werden können.

Die Fehlercodes entstammen der CURLSHcode-Enumeration der libcurl-Bibliothek. Typische Fehlercodes sind beispielsweise CURLSHE_BAD_OPTION (ungültige Option) oder CURLSHE_IN_USE (Handle wird gerade verwendet). Der Rückgabewert ist null, wenn kein passender Fehlertext gefunden werden kann.

Diese Funktion eignet sich besonders für die Fehlerdiagnose und das Logging in Anwendungen, die mehrere cURL-Verbindungen koordinieren und gemeinsam genutzte Ressourcen über ein Share-Handle verwalten.

Parameter

Name Typ Default Beschreibung
$error_code Pflicht int Ein numerischer cURL-Share-Fehlercode (CURLSHcode), wie er z. B. von curl_share_errno() zurückgegeben wird.

Rückgabewert

Typ
string|null
Beschreibung
Gibt einen englischsprachigen Beschreibungstext für den angegebenen Fehlercode zurück. Ist der Fehlercode unbekannt oder nicht zuordenbar, wird null zurückgegeben.

Beispiele

Fehlermeldung eines Share-Handles ausgeben

<?php
// Share-Handle erstellen
$sh = curl_share_init();

// Absichtlich eine ungültige Option setzen, um einen Fehler zu erzeugen
$result = curl_share_setopt($sh, 9999, true); // 9999 = ungültige Option

if ($result !== true) {
    $errorCode = curl_share_errno($sh);
    $errorMessage = curl_share_strerror($errorCode);
    echo "Share-Fehlercode: " . $errorCode . PHP_EOL;
    echo "Fehlermeldung: " . $errorMessage . PHP_EOL;
}

curl_share_close($sh);
Share-Fehlercode: 1 Fehlermeldung: An invalid share option was passed to the share object

Gemeinsam genutzten DNS-Cache mit Fehlerbehandlung einrichten

<?php
$sh = curl_share_init();

// DNS-Cache zwischen Handles teilen
$result = curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);

if ($result !== true) {
    $errorCode = curl_share_errno($sh);
    echo "Fehler beim Konfigurieren des Share-Handles: "
        . curl_share_strerror($errorCode) . PHP_EOL;
    curl_share_close($sh);
    exit(1);
}

// Zwei cURL-Handles erstellen und das Share-Handle zuweisen
$ch1 = curl_init('https://example.com');
$ch2 = curl_init('https://example.org');

curl_setopt($ch1, CURLOPT_SHARE, $sh);
curl_setopt($ch2, CURLOPT_SHARE, $sh);

curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);

$response1 = curl_exec($ch1);
$response2 = curl_exec($ch2);

curl_close($ch1);
curl_close($ch2);
curl_share_close($sh);

echo "Beide Anfragen abgeschlossen, DNS-Cache wurde geteilt." . PHP_EOL;
Beide Anfragen abgeschlossen, DNS-Cache wurde geteilt.

// Wichtig · Fallstricke

Die zurückgegebenen Fehlermeldungen sind stets auf Englisch, da sie direkt aus der libcurl-Bibliothek stammen. Eine Lokalisierung muss bei Bedarf selbst implementiert werden.

Zu beachten ist, dass curl_share_errno() erst nach einem fehlgeschlagenen curl_share_setopt()-Aufruf einen aussagekräftigen Fehlercode liefert. Bei unbekannten Fehlercodes gibt curl_share_strerror() null zurück – entsprechende Null-Prüfungen im Code sind daher empfehlenswert.