Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

cURL cz. 1: Podstawy i protokół HTTP

Podstawowe funkcje

W skład implementacji cURL w PHP wchodzą dwa interfejsy ? easy oraz multi. Jak sama nazwa wskazuje, curl_easy udostępnia zbiór funkcji pozwalający na komunikację w najprostszy sposób. Curl_multi pozwala natomiast na jednoczesne działanie na kilku sesjach. Zacznijmy od omówienia pierwszego z nich.

curl_init

Pierwsza funkcja rozpoczyna sesję i zwraca zasób, który będzie służył do kontroli połączenia.

Jedyny opcjonalny parametr jest odnośnikiem URI do zasobu, z którym chcemy się połączyć. Na tym etapie powinniśmy korzystać z możliwości podania URI podczasz inicjalizacji sesji, aczkolwiek istnieje alternatywne, mniej wygodne rozwiązanie, które zostanie omówione w dalszej części artykułu.

curl_setopt

Kolejną z niezbędnych funkcji jest curl_setopt, która odpowiada za zmianę opcji w obrębie sesji.

Pierwszym przekazywanym parametrem jest zwrócony przez funkcję curl_init zasób cURL. Kolejnym argumentem jest liczba powiązana z konkretną właściwością. W rozszerzeniu wszystkie opcje są reprezentowane poprzez stałe rozpoczynające się prefiksem CURLOPT. Każdej opcji możliwe jest przypisanie wartości konkretnego typu. Spis najważniejszych stałych znajduje się w manualu PHP. Wszelkie używane stałe zostaną opisane w tekście, więc dokumentacja będzie potrzebna tylko w przypadku wykonywania zadań wykraczających poza tematykę artykułu. Musimy sobie zdać sprawę, że większa część komunikacji z serwerem jest sterowana opcjami, więc będzie to najczęściej używana funkcja w przykładach zawartych w tym tekście.

curl_exec

Kiedy już mamy zasób i ustawione opcje, musimy przesłać nasze żądanie do serwera, co czynimy wywołując funkcję curl_exec.

Argumenty nie powinny wymagać wyjaśnień, gdyż sytuacja wygląda analogicznie do pozostałych funkcji. Typ zwracanej wartości jest zależny od opcji połączenia, o której będzie mowa nieco później.

curl_close

Od samego początku używania biblioteki, należy wyrobić sobie dobry nawyk zamykania sesji. Mimo iż w pierwszych skryptach nie wymaga się czyszczenia, to jednak później może okazać się to niezbędne. Wywołanie nie powinno wymagać wyjaśnień.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (10)
dlaczego
Wtorek 27 Styczeń 2009 2:02:34 pm - yaotzin <yaotzin1_at_o2.pl>

dlaczego znowu nie można wydrukować sobie tego artykułu ??

pobieranie nagłówków
Środa 13 Luty 2008 10:10:17 am - jarmiar <jarek21-1992_at_tlen.pl>

jak można pobrać nagłówki wysyłane przez serwer, do którego chcemy się połączyć i zapisać je w tablicy lub w jakiejś zmiennej

ciastka w zminnych
Piątek 02 Listopad 2007 3:49:11 am - Gacek89 <czupa_at_vp.pl>

witam,
na poczatek chiał bym pogratulowaćdobrego artyku, jak narazie njlepszy jaki w seci znalazłem o curl

chciałbym sie dowedzieć jak mozna zapisać cookies do zmiennej i puźniej z niej odczytać je

Kasowanie ciastek
Wtorek 06 Marzec 2007 1:20:50 am - gustawgustaw <gustawsolski_at_gmail.com>

A jak wykasować automatycznie ciastka po zakończeniu sesji curl?

Nawiasy klamrowe.
Czwartek 08 Luty 2007 9:04:27 pm - Ludvik

Słuszna uwaga. Poprawiłem to. Wielkie dzięki za wskazanie błędu. Dziwne, że u mnie nie wywalało nic.

Re: problem
Piątek 17 Listopad 2006 3:49:05 pm - pako1979

przelicz nawiasy klamrowe w funkcji showAll , brakuje jednego zamykajcego, jak dodasz powinno zadzaialac

Re...
Poniedziałek 06 Listopad 2006 1:29:51 pm - Ludvik

Nie mam jak tego sprawdzić teraz dokładnie, ale w drugim skrypcie prawdopodobnie zamiast URL wpisałeś nazwę samego pliku.

Sprawdzałem skrypty wcześniej i dziwię się, że coś takiego wyskakuje... Jeszcze raz bym rzucił na to okiem, ale nie mam jak, niestety...

problem
Środa 25 Październik 2006 8:05:17 pm - teo <morfeusz215_at_wp.pl>

Witam mam pewien problem : skopiowałem przykładowa stronke - "site.php" jednak gdy ją włańczam manualnie wyskakuje bład :

Parse error: syntax error, unexpected $end in .........../site.php on line 20

lub poprzez L.2.2 wtedy nic sie nie dzieje a gdy przez 3.1 , został wygenerowany nastepujacy bład :

Błąd #6: Couldn't resolve host 'site.php'

Re: bezpieczeństwo
Piątek 18 Sierpień 2006 10:15:35 am - Ludvik

Wszystkie informacje o transferze są zwracane przez metodę curl_getinfo, tak jak jest napisane w 3. części. Nie chciałem zamieszczać spisu stałych, gdyż wszystkie znajdują się manualu.

http://pl.php.net/curl_getinfo

bepieczeństwo
Czwartek 17 Sierpień 2006 11:20:52 pm - takeshin

wszystko pięknie i fajnie,
ale jak to wygląda od strony bezpieczeństwa?

jak sprawdzić, jaki dokument pobieram i ile zajmuje?
co w przypadku jeśli przy wykonaniu:
$ch = curl_init('http://localhost/curl/site.php');
okaże się, że to wcale nie jest plik typu,
którego chciałbym (xml, html) a na przykład 700 avi?

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2022 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System