[PHP|cURL] Kurs cURL

cURL - Client URL Library - biblioteka do uniwersalnej wymiany danych między zdalnymi serwerami poprzez różne protokoły. Oznacza to, że na danym serwerze można wysyłać i pobierać dane z innego. cURL jest prosta w użyciu, ale zarazem bardzo funkcjonalna. Biblioteki tej używa się między innymi do pobierania innych zdalnych dokumentów czy też wysłania danych do innych serwisów. Wpis ten jest wprowadzeniem do obsługi biblioteki cURL.

Pierwsze żądanie

W tym przykładzie pokażę jak może wyglądać żądanie http do zdalnej strony:

$ch = curl_init('http://www.example.com'); // Inicjujemy sesję cURL z żądaniami na adres przekazany jako argument

curl_setopt($ch, CURLOPT_HEADER, 0); // Rezygnujemy z nagłówków w zwróconej odpowiedzi
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // Ustawiamy timeout połączenia np. 30 sekund

curl_exec($ch); // Wykonujemy żądanie

curl_close($ch); // Kończymy sesję
Jak widać na powyższym przykładzie, wysłanie prostego żądania do zdalnego serwiu wymaga napisania tylko 5 krótkich linii kodu.

curl_init

Funkcja curl_init to funkcja inicjalizująca sesję cURL. Jako argument możemy, ale nie musimy przekazać do funkcji URL na jaki będzie wysłane żądanie. Adres dla żądania można także przekazać za pomocą funkcji curl_setopt, ale o tym w dalszej części. Funkcja curl_init zwraca resource uchwyt połączenia

curl_setopt

Funkcja curl_setopt jest jedną z ważniejszych funkcji biblioteki cURL. Służy ona do ustawiania opcji połączenia. Funkcja ta przyjmuje 3 argumenty: (resource) $ch - uchwyt połączenia, (int) $option - opcja do ustawienia (przekazywana jako stała), (mixed) $value - wartość dla ustawiane opcji. Wypiszę najczęściej używane przeze mnie opcje wraz z ich opisami. Wszystkie dostępne opcje znajdują się w dokumentacji.

  • bool CURLOPT_RETURNTRANSFER - TRUE, jeśli wynik żądania ma być zwrócony;
  • bool CURLOPT_HEADER - TRUE, jeśli do odpowiedzi mają zostać dołączone nagłówki;
  • bool CURLOPT_BINARYTRANSFER - TRUE, jeśli odpowiedź ma być zwrócona w surowym stanie;
  • bool CURLOPT_AUTOREFERER, TRUE, jeśli nagłówek Referer ma być ustawiany automatycznie;
  • string CURLOPT_URL - URL dla zapytania;
  • string CURLOPT_REFERER - ustawia nagłówek Referer;
  • string CURLOPT_USERAGENT - ustawia nagłówek User-Agent;
  • string CURLOPT_COOKIE - ustawia nagłówek Cookie;
  • string CURLOPT_ENCODING - ustawia nagłówek Accept-Encoding;
  • int CURLOPT_CONNECTTIMEOUT - ustawia timeout połączenia (w sekundach);
  • int CURLOPT_BUFFERSIZE - ustawia rozmiar bufora;
  • int CURLOPT_PORT - ustawia numer portu dla połączenia;

curl_exec

Za pomocą funkcji curl_exec wykonujemy wcześniej ustawione żądanie. Funkcja przyjmuje 1 argument (resource) - uchwyt zwrócony przez funkcję curl_init. Funkcja ta zwraca TRUE, jeśli żądanie zostanie pomyślnie wysłane lub FALSE w przypadku niepowodzenia. Uwaga! Funkcja curl_init służy także do zwracania wyniku żądania, jeśli opcja CURLOPT_RETURNTRANSFER zostanie ustawiona na TRUE.

curl_close

Funkcja curl_close kończy sesję cURL. Funkcja przyjmuje 1 argument (resource) - uchwyt połączenia.

Komentarze

Popular

[HTML] Jak wstawić obrazek?

[PHP] Jak pobrać adres strony?

[C++] Jak obliczyć pole i obwód trapezu?