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
brugercURL
-biblioteket internt, den har bare ikke så detaljerede konfigurationsmuligheder.
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.
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:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | da