PHP Manual

cURL v PHP - sťahovanie údajov prostredníctvom adresy URL

15. 02. 2020

Obsah článku

Knižnica PHP `cURL` je vhodným spôsobom na sťahovanie údajov z cudzieho servera.

Na základe dotazu zostaví požiadavku HTTP, ktorú odošle na cieľový server, a po stiahnutí obsahuje rozhranie API na (relatívne) jednoduchú manipuláciu s údajmi.

Na rozdiel od natívnej funkcie file_get_contents (prostredníctvom ktorej môžeme tiež zadávať požiadavky HTTP) ponúka oveľa lepšie možnosti konfigurácie a sťahuje stránky/súbory ako skutočný prehliadač.

Funkcia file_get_contents interne používa knižnicu cURL, len nemá tak podrobné konfiguračné možnosti.

Zisťovanie režimu cURL v požiadavke

Často je užitočné zistiť, či bola aktuálna požiadavka vykonaná prostredníctvom cUrl alebo klasicky v prehliadači.

V PHP neexistuje priama implementácia tejto funkcie, ale môžeme si ju napísať sami:

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

Ak máte Linux a jeho terminál alebo používate Mac, skúste tento príkaz:

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

Príkaz vykoná internú požiadavku na túto stránku a vráti výsledok.

Ak aplikácia nezistila požiadavku cURL, HTML sa vráti, ako keby požiadavka prišla z prehliadača. Keďže sa však typy požiadaviek zisťujú, nič nám nebráni vrátiť vyčistený článok Markdown.

Výhodou sú potom oveľa lepšie vyčistené údaje. Používateľovi v prehliadači zobrazíme formátované HTML, ale robotovi iba základný obsah.

Podrobné používanie rozhrania API v jazyku PHP

Ak hľadáte podrobné informácie o používaní cUrl, odporúčam prečítať si oficiálnu dokumentáciu, ktorá je vždy aktuálna.

Na bežné použitie je k dispozícii knižnica Guzzle, ktorá spracováva

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