Posty

Wyświetlam posty z etykietą cURL

[PHP|cURL] Jak pobrać dane z innej strony?

Najprostszą i zarazem najszybszą metodą na pobranie danych z innej strony jest użycie cURL , a następnie parsera PHP Simple HTML DOM . Jak pobrać zdalną stronę? Pobranie zdalnego dokumentu poprzez protokół http lub https sprowadza się do napisania kilku komend cURL : <?php $ch = curl_init('http://www.example.com'); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $document = curl_exec($ch); curl_close($ch); Już pewnie się domyślasz, że zmienna $document przechowuje wynik zwrócony przez funkcję curl_exec - pobraną stronę. Reszta to już pobieranie danych z elementów DOM z pomocą biblioteki PHP Simple HTML DOM . Przykładowo na zdalnej stronie znajduje się div o ID 'article-1', a w nim jakiś tekst. Aby go pobrać użyjemy następującego kodu: <?php require 'simple_html_dom.php'; // Dołączamy bibliotekę PHP Simple HTML DOM $html = str_g...

[PHP|cURL] Kurs cURL

cURL - Client URL Library - to 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/do innego. Biblioteka cURL jest prosta w użyciu, ale zarazem bardzo funkcjonalna. Używa się jej między innymi do pobierania zdalnych dokumentów czy też wysłania danych do innych serwisów. cURL obsługuje protokoły HTTP, HTTPS, FTP oraz inne. Zaletami biblioteki curl są łatwość użycia oraz wysoka konfigurowalność. Wpis ten jest wprowadzeniem do obsługi tej biblioteki. Pierwsze żądanie W tym przykładzie pokażę jak może wyglądać żądanie http z użyciem cURL: <?php $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...