Partner gen.Algotech

cURL w PHP - pobieranie danych przez URL

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.

|
15 lutego 2020

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

Ładowanie komentarzy...

Bądź na bieżąco

Zapisz się do naszego newslettera i otrzymuj najnowsze informacje o cyberbezpieczeństwie prosto na swoją skrzynkę e-mail.

Twoje dane są bezpieczne. Newsletter możesz w każdej chwili wypisać.