cURL i PHP - nedladdning av data via URL
PHP-biblioteket cURL är ett bra sätt att hämta data från en utländsk server.
Baserat på en förfrågan skapar den en HTTP-förfrågan som skickas till målservern och när den väl har laddats ner innehåller den ett API för (relativt) enkel datahantering.
Till skillnad från den inhemska funktionen file_get_contents (genom vilken vi också kan göra HTTP-förfrågningar) erbjuder den mycket bättre konfigurationsalternativ och laddar ner sidor/filer som en riktig webbläsare.
Funktionen
file_get_contentsanvänder biblioteketcURLinternt, men har inte lika detaljerade konfigurationsalternativ.
Upptäcka cURL-läge i en begäran
Det är ofta användbart att upptäcka om den aktuella begäran gjordes via cUrl eller klassiskt i webbläsaren.
Det finns ingen direkt implementering för detta i PHP, men vi kan skriva en enkel funktion själva:
function isCurl(): bool{return str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'curl');}
Om du har Linux och dess Terminal, eller om du har en Mac, kan du prova det här kommandot:
curl https://php.baraja.cz/curl
Kommandot gör en intern förfrågan till denna webbplats och returnerar resultatet.
Om programmet inte upptäckte cURL-förfrågan kommer HTML-filen att returneras som om förfrågan kom från webbläsaren. Eftersom begäranstyperna upptäcks finns det dock inget som hindrar oss från att returnera en renodlad Markdown-artikel.
Fördelen är att uppgifterna blir mycket bättre rensade. Vi visar den formaterade HTML-koden för användaren i webbläsaren, men endast det grundläggande innehållet för roboten.
Detaljerad användning av API:et i PHP
Om du letar efter detaljerad användning av cUrl rekommenderar jag att du läser officiell dokumentation, som alltid är uppdaterad.
För tillfällig användning finns det ett Guzzle-bibliotek som hanterar