Seit Version 4.0.2 werden die Funktionen der libcurl Bibliothek durch PHP unterstützt.
Laut PHP Dokumentation kann cURL über folgende Protokolle Verbindungen zu anderen Servern herstellen:
Auf der libcurl Projektseite werden dagegen noch weitere Protokolle angegeben die unterstützt werden. Der Vollständigkeit halber gebe ich sie hier mit an:
Zusätzlich werden folgende Funktionalitäten unterstützt:
Damit die cURL Funktionen genutzt werden können muss ein cURL-Paket ab Version libcurl 7.10.5 installiert sein.
Für cURL gibt es eine Unmenge an Konstanten. Allerdings gibt es teilweise Differenzen zwischen den Angaben in der PHP Dokumentation und der offiziellen Projektseite.
Der erste Schritt zu einen cURL Request ist immer die Initialisierung einer cURL-Session mittels curl_init().
Folgende Befehlszeile erzeugt eine cURL-Session und gibt einen cURL Handle zurück.
$ch = curl_init();
Die URL zu der die Verbindung später aufgebaut wird, kann bereits hier als url Argument übergeben werden.
$ch = curl_init('https://www.google.de/');
Nachdem das cURL-Handle erzeugt wurde können weitere Optionen für den cURL Transfer gesetzt werden.
Hier kommen die oben erwähnten Konstanten ins Spiel. Diese können über curl_setopt() vor dem cURL-Transfer mit einem anderen Wert bestückt werden.
Ausgabe in ein vorher erzeugtes Datei-Handle leiten:
curl_setopt($ch, CURLOPT_FILE, $fh);
Header nicht mit ausgeben:
curl_setopt($ch, CURLOPT_HEADER, 0);
Falls die URL, zu der die Verbindung später aufgebaut werden soll, nicht bereits durch curl_init() übergeben wurde muss das mit curl_setopt() nachgeholt werden:
curl_setopt($ch, CURLOPT_URL, 'https://www.google.de/');
Jetzt kann im 3. Schritt mit curl_exec() die Sitzung zu der angegebenen URL aufgebaut und die Daten transferiert werden:
curl_exec($ch);
Im 4. und letzten Schritt muss die URL-Sitzung mit curl_close() wieder beendet werden:
curl_close($ch);
Dies war ein einfaches Beispiel für den Abruf einer URL mittels cURL.