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

cURL cz. 1: Podstawy i protokół HTTP

Piszemy pierwszy skrypt

Zacznijmy więc od najprostszego przykładu - pobrania dokumentu HTML poprzez protokół HTTP. Na nasze potrzeby stworzymy stronę, dzięki której będziemy mogli analizować kody z listingów.

<?php
function showAll($aVars, $sTitle) {
    echo "$sTitle:\n";
    if (count($aVars) == 0) {
        echo "  Brak\n";
    } else {
        foreach ($aVars as $name => $value) {
            echo "  $name = $value\n";
        }
    }
}
setcookie('c1', 'v1', time() + 3600);
setcookie('c2', 'v2', time() + 3600);
$headers = getallheaders();
showAll($headers, 'Nagłówki żądania');
showAll($_GET, 'Zmienne przekazywane metodą GET');
showAll($_POST, 'Zmienne przekazywane metodą POST');
showAll($_COOKIE, 'Ciastka');
showAll($_FILES, 'Pliki');
?>
<?php
// Argumentem jest URL do skryptu z listingu 2.1
$ch = curl_init('http://localhost/curl/site.php');
curl_exec($ch);
curl_close($ch);
?>

W efekcie do przeglądarki zostaną wysłane poniższe informacje.

W przypadku wywołania tej samej strony używając przeglądarki Mozilla Firefox 1.5.0.3 otrzymamy inne dane:

<?php
$ch = curl_init('http://localhost/curl/site.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);
curl_close($ch);
?>
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