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_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:

php
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:

shell
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

Newsletter

Nejlepsi tipy a triky o PHP do Vaseho e-mailu. Clanky a novinky nejen ze sveta PHP a programovani.