PHP Manual
/
Forvaltning af produktionsservere

cURL i PHP - downloading af data via URL

15. 02. 2020

Obsah článku

PHP-biblioteket `cURL` er en god måde at hente data fra en fremmed server på.

Baseret på en forespørgsel opbygger den en HTTP-forespørgsel, som den sender til målserveren, og når den er downloadet, indeholder den en API til (relativt) nem datahåndtering.

I modsætning til den oprindelige file_get_contents-funktion (hvorigennem vi også kan lave HTTP-forespørgsler), tilbyder den langt bedre konfigurationsmuligheder og downloader sider/filer som en rigtig browser.

Funktionen file_get_contents bruger cURL-biblioteket internt, den har bare ikke så detaljerede konfigurationsmuligheder.

Registrering af cURL-tilstand i en anmodning

Det er ofte nyttigt at registrere, om den aktuelle forespørgsel blev foretaget via cUrl eller klassisk i browseren.

Der findes ingen direkte implementering af dette i PHP, men vi kan selv skrive en simpel funktion:

function isCurl(): bool
{
return str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'krølle');
}

Hvis du har Linux og dets Terminal eller er på en Mac, kan du prøve denne kommando:

curl https://php.baraja.cz/curl

Kommandoen foretager en intern forespørgsel til dette websted og returnerer resultatet.

Hvis programmet ikke har registreret cURL-forespørgslen, returneres HTML-koden, som om forespørgslen kom fra browseren. Men da anmodningstyperne er registreret, er der intet, der forhindrer os i at returnere en renset Markdown-artikel.

Fordelen er, at dataene er meget bedre renset. Vi viser den formaterede HTML-tekst til brugeren i browseren, men kun det grundlæggende indhold til robotten.

Detaljeret brug af API'et i PHP

Hvis du er på udkig efter detaljeret brug af cUrl, anbefaler jeg at læse officiel dokumentation, som altid er opdateret.

Til lejlighedsvis brug findes der et Guzzle bibliotek, der håndterer

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