Biblioteka PHP `cURL` jest dobrym sposobem na pobieranie danych z obcego serwera.
Na podstawie zapytania tworzy on żądanie HTTP, które wysyła do serwera docelowego, a po pobraniu zawiera interfejs API umożliwiający (stosunkowo) łatwą obsługę danych.
W przeciwieństwie do natywnej funkcji file_get_contents
(za pomocą której również możemy wykonywać żądania HTTP), oferuje ona znacznie lepsze opcje konfiguracyjne i pobiera strony/pliki jak prawdziwa przeglądarka.
Funkcja
file_get_contents
używa wewnętrznie bibliotekicURL
, po prostu nie ma tak szczegółowych opcji konfiguracyjnych.
Często przydatne jest wykrycie, czy bieżące żądanie zostało wykonane przez cUrl
, czy klasycznie w przeglądarce.
W PHP nie ma bezpośredniej implementacji tej funkcji, ale możemy sami napisać prostą funkcję:
function isCurl(): bool{return str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'curl');}
Jeśli korzystasz z systemu Linux i jego Terminala lub masz komputer Mac, spróbuj wykonać to polecenie:
curl https://php.baraja.cz/curl
Polecenie wysyła wewnętrzne zapytanie do tej witryny i zwraca jego wynik.
Jeśli aplikacja nie wykryła żądania cURL, kod HTML zostanie zwrócony w taki sposób, jakby żądanie pochodziło z przeglądarki. Ponieważ jednak typy żądań są wykrywane, nic nie stoi na przeszkodzie, aby zwrócić wyczyszczony artykuł w formacie Markdown.
Zaletą tego rozwiązania jest znacznie lepsze oczyszczanie danych. Użytkownikowi w przeglądarce pokazujemy sformatowany HTML, a robotowi tylko podstawową treść.
Jeśli szukasz szczegółowych informacji na temat używania cUrl, polecam przeczytanie oficjalnej dokumentacji, która jest zawsze aktualna.
Do zwykłego użytku dostępna jest biblioteka Guzzle, która obsługuje
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | pl