PHP: inviare una richiesta GET con parametri usando curl

PHP: inviare una richiesta GET con parametri usando curl

Quando si sviluppa un'applicazione web, a volte è necessario inviare una richiesta HTTP GET con parametri. Ci sono molti modi per farlo, ma uno dei più semplici è usando l'estensione curl di PHP.

Il comando curl è un'utilità della riga di comando che consente di inviare richieste HTTP a un server. In PHP, è possibile utilizzare l'estensione relativa per inviare una richiesta HTTP GET con parametri.


$ch = curl_init();

$url = 'http://example.com/api/data';
$params = [
	'id' => 123,
	'name' => 'John Doe'
];
$query = http_build_query($params);
$url_with_params = $url . '?' . $query;

curl_setopt($ch, CURLOPT_URL, $url_with_params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);
curl_close($ch);
	

Il parametro id nell'esempio rappresenta l'identificatore dell'oggetto che si vuole recuperare, mentre il parametro name rappresenta il nome dell'utente.

La funzione http_build_query converte l'array di parametri in una stringa di query appropriata per l'URL. La stringa di query risultante è concatenata all'URL di destinazione per creare l'URL completo con i parametri della richiesta GET.

La funzione curl_setopt consente di impostare le opzioni di cURL per la sessione corrente. In questo esempio, l'opzione CURLOPT_URL viene impostata sull'URL completo con i parametri della richiesta GET, mentre l'opzione CURLOPT_RETURNTRANSFER viene impostata su true per indicare che cURL deve restituire la risposta come stringa anziché stamparla direttamente a schermo. L'opzione CURLOPT_FOLLOWLOCATION viene impostata su true per consentire a cURL di seguire eventuali reindirizzamenti.

Infine, la funzione curl_exec invia la richiesta GET con parametri e restituisce la risposta come stringa. La sessione cURL viene chiusa con la funzione curl_close.

In sintesi, con pochi passaggi è possibile utilizzare il comando curl in PHP per inviare una richiesta HTTP GET con parametri a un server.

Torna su