Home > PHP > cURL: Callback-Funktion mit Regulären Ausdrücken für den Header

cURL: Callback-Funktion mit Regulären Ausdrücken für den Header

In meinem vorherigen Post (cURL: Verbindung herstellen) habe ich darüber berichtet wie man mit der in PHP integrierten Bibliothek cURL eine URL aufruft – unter anderem um einen Webservice aufzurufen oder andere Dateien auszulesen. Die Grundlagen haben wir schon mal, um nun weiter zu gehen. In manchen Fällen möchte man die Header auslesen, nicht alle, sondern eventuell nur einen und die bestimmte Inhalte weiterverarbeiten. Dazu bietet sich ganz gut die Konstante CURLOPT_HEADERFUNCTION an. In dieser definiert man einen Funktionsnamen. Diese Callback Funktion wird bei jedem Lesen eines Headers aufgerufen und darauf angewendet werden. Man kann somit zum Beispiel reguläre Ausdrücke anwenden und bestimmte Strings aus den Headers auslesen.

Somit haben wir für diese Verbindung eine Callback-Funktion angegeben. Nun implementieren wir noch die Funktion, als Beispiel soll der Location-Header ausgelesen werden, sofern dieser angegeben gesetzt ist:

Der reguläre Ausdruck /^Location: (.*)?/ matched auf Strings die mit Location: anfangen. Die Returnwert der Callback-Funktion muss gesetzt sein. In unserem Beispiel steht die Konstante CURLOPT_FOLLOWLOCATION auf FALSE. Andernfalls wird dem „Location: „-Header gefolgt.

Noch ein Tipp, wenn die eigene Callback Methode nicht gefunden werden sollte:

Falls die Funktionen in einer Klasse (class) definiert werden, dann wird die Konstante mittel array gesetzt.

  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks