2 Stimmen

Unter Verwendung von PHP, wie kann ich die Fehlerseite eines Servers lesen?

Ich möchte die Antwort eines Servers für eine bestimmte Anfrage lesen, sie nach meinen Bedürfnissen ändern und sie an den Besucher der Seite senden. get_headers() funktioniert perfekt für die Header, aber wenn die angeforderte Datei fehlt (404), und das ist genau das, was ich verwenden möchte, get_file_contents(), readfile() und andere Funktionen, die ich ausprobiert habe, brechen alle mit der Warnung/Fehler ab, dass die Datei fehlt, anstatt den erhaltenen Stream in eine Variable zu lesen.

Also, was ich möchte, ist eine Funktion ähnlich wie get_headers(), nur für den Rest der Daten, wie z.B. ein get_data(), das nicht abbricht. Gibt es so etwas?

Vielen Dank fürs Lesen.

2voto

Matthew Punkte 14726

Verwenden Sie curl_exec. Es gibt immer den Body zurück, es sei denn, die Option CURLOPT_FAILONERROR ist auf TRUE gesetzt.

Hier ist ein Beispiel:

$url = 'http://www.example.com/thisrequestwillerror';

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);

// Dies ist der Standardwert, aber nur zur Sicherheit...
curl_setopt($curl, CURLOPT_FAILONERROR, false);

// Ausführen und als String zurückgeben
$str = curl_exec($curl);

curl_close($curl);

// Den Response-Body ausgeben
var_dump($str);

Verpacken Sie dies in eine Funktion und verwenden Sie es, wo immer Sie den HTTP Response Body in Ihrer Anwendung benötigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X