PHP Manual
/
Hantering av produktionsservrar

cURL i PHP - nedladdning av data via URL

15. 02. 2020

Obsah článku

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_contents använder biblioteket cURL internt, 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

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