Tutorial - Wie frage ich in PHP eine Seite mit curl ab?

Wer in PHP eine Seite mit curl abfragt, holt fremde Inhalte direkt auf den eigenen Server: Wetterdaten, Preise, Statusmeldungen. Diese Anleitung zeigt die Einrichtung der Erweiterung und den Aufbau einer Anfrage bis zur ausgewerteten Antwort.

In diesem Tutorial werden Sie lernen, wie Sie in PHP eine Seite mit curl abfragen können.

  1. Laden Sie die curl-Erweiterung für PHP herunter. Sie können diese Erweiterung hier herunterladen: https://php.net/manual/de/curl.setup.php.

  2. Laden Sie das curl-Paket auf Ihrem Computer herunter und installieren Sie die PHP-Erweiterung. Gegebenenfalls müssen Sie in der PHP.ini nur ;extension=php_curl.dll Semikolon entfernen und den HTTP-Dienst neu starten. Zum Prüfen, ob curl aktiv ist, schauen Sie bitte in die PHPInfo. Dort wird aufgeführt, ob curl aktiv ist.

  3. Öffnen Sie Ihren Texteditor und erstellen Sie eine neue Datei mit dem Namen „curl.php“.

  4. Fügen Sie diesen Code in die Datei ein:

    <?php
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "http://example.com/");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $page = curl_exec($curl);
    curl_close($curl);
    echo $page;
    ?>

    Der obige Code kann verwendet werden, um eine Seite mit curl abzufragen. Der erste Schritt ist, curl_init() zu initialisieren. Mit curl_setopt() können Sie die Parameter für die Anfrage festlegen. In diesem Fall legen wir die URL fest, die wir abfragen möchten („http://example.com/"). Dann legen wir den Parameter CURLOPT_RETURNTRANSFER auf 1 fest, damit die Seite in eine Variable gespeichert wird. Mit curl_exec() führen wir die Anfrage aus und speichern das Ergebnis in einer Variablen. Schließlich schließen wir die Anfrage mit curl_close() und geben den Inhalt der Seite mit echo aus.

  5. Speichern Sie die Datei und öffnen Sie sie in einem Webbrowser. Der Inhalt der Seite, die Sie abgefragt haben, wird angezeigt.

Das war’s! Sie haben gerade gelernt, wie Sie in PHP eine Seite mit curl abfragen können. Möchten Sie ein wenig umfangreicher auf dieses Thema eingehen, dann können Sie den Artikel: „Daten von einer externen Webseite auslesen“ sich ansehen. Es werden die Daten hierbei mit fsockopen() abgeholt, ohne die curl-Erweiterung.

Eine Seite mit curl abfragen: die vier Schritte

Jede Abfrage folgt demselben Muster: Verbindung vorbereiten, Adresse und Optionen setzen, Anfrage ausführen, Verbindung schließen. Entscheidend ist die Option, die Antwort als Zeichenkette zurückzugeben, statt sie direkt auszugeben – sonst landet der fremde Inhalt ungefiltert auf Ihrer Seite.

Setzen Sie außerdem ein Zeitlimit. Antwortet die Gegenseite nicht, wartet Ihr Skript sonst, bis der Server die Ausführung abbricht. Ein Limit von wenigen Sekunden reicht in der Praxis und hält Ihre Seite schnell.

Fehler erkennen und behandeln

Prüfen Sie nach jeder Anfrage den Statuscode. Nur bei 200 ist die Antwort brauchbar; bei 404 oder 500 sollte Ihr Skript einen Ersatzinhalt anzeigen statt eine leere Seite. Fehlermeldungen der Verbindung selbst liefert curl über eine eigene Funktion.

Wenn eine Seite mit curl gar nicht erreichbar ist, liegt es häufig an fehlenden Zertifikaten für HTTPS oder daran, dass der Webspace ausgehende Verbindungen unterbindet. Beides lässt sich beim Anbieter klären.

Häufige Fragen zum Abfragen einer Seite mit curl

Ist curl in PHP enthalten? Es ist eine Erweiterung; auf vielen Servern ist sie schon aktiv, sonst in der php.ini freischalten.

Wie bekomme ich die Antwort in eine Variable? Mit der Option RETURNTRANSFER; sonst wird die Antwort direkt ausgegeben.

Was mache ich bei einer Zeitüberschreitung? Ein Zeitlimit setzen und im Skript einen Ersatzinhalt vorsehen.

Geht das auch ohne curl? Für einfache Abrufe genügt file_get_contents, sofern der Server es erlaubt.

Jetzt die Abfrage in eine eigene Funktion auslagern – so bleibt der Aufruf an einer Stelle. Grundlagen liefern Typen in PHP und IF-Anweisungen für die Fehlerbehandlung.