PHP Manual
/
Gestione dei server di produzione

cURL in PHP - scaricare dati tramite URL

15. 02. 2020

Obsah článku

La libreria PHP `cURL` è un buon modo per scaricare dati da un server straniero.

Sulla base di una query, costruisce una richiesta HTTP che invia al server di destinazione, e una volta scaricata, contiene un'API per una (relativamente) facile gestione dei dati.

A differenza della funzione nativa file_get_contents (attraverso la quale possiamo anche fare richieste HTTP), offre opzioni di configurazione molto migliori e scarica pagine/file come un vero browser.

La funzione file_get_contents usa internamente la libreria cURL, solo che non ha opzioni di configurazione così dettagliate.

Rilevare la modalità cURL in una richiesta

È spesso utile rilevare se la richiesta corrente è stata fatta tramite cUrl o classicamente nel browser.

Non c'è un'implementazione diretta per questo in PHP, ma possiamo scrivere noi stessi una semplice funzione:

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

Se hai Linux e il suo terminale, o sei su un Mac, prova questo comando:

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

Il comando fa una richiesta interna a questo sito e restituisce il risultato.

Se l'applicazione non ha rilevato una richiesta cURL, l'HTML sarà restituito come se la richiesta provenisse dal browser. Tuttavia, poiché i tipi di richiesta sono rilevati, non c'è nulla che ci impedisca di restituire un articolo Markdown pulito.

Il vantaggio è che i dati sono molto più puliti. Mostriamo l'HTML formattato all'utente nel browser, ma solo il contenuto di base al robot.

Uso dettagliato dell'API in PHP

Se stai cercando un uso dettagliato di cUrl, ti consiglio di leggere la documentazione ufficiale, che è sempre aggiornata.

Per un uso casuale, c'è una libreria Guzzle che gestisce

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