cURL in PHP - scaricare dati tramite URL
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_contentsusa internamente la libreriacURL, 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