PHP Manual
/
Zarządzanie serwerami produkcyjnymi

cURL w PHP - pobieranie danych przez URL

15. 02. 2020

Obsah článku

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 biblioteki cURL, po prostu nie ma tak szczegółowych opcji konfiguracyjnych.

Wykrywanie trybu cURL w żądaniu

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ść.

Szczegółowe wykorzystanie interfejsu API w PHP

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:

Související články

1.
3.
Status:
All systems normal.
2024