PHP Manual
/
Gestion des serveurs de production

cURL en PHP - téléchargement de données via une URL

15. 02. 2020

Obsah článku

La bibliothèque PHP `cURL` est un bon moyen de télécharger des données depuis un serveur étranger.

Sur la base d'une requête, il construit une demande HTTP qu'il envoie au serveur cible, et une fois téléchargé, il contient une API pour une manipulation (relativement) facile des données.

Contrairement à la fonction native file_get_contents (par laquelle nous pouvons aussi faire des requêtes HTTP), il offre de bien meilleures options de configuration et télécharge les pages/fichiers comme un vrai navigateur.

La fonction file_get_contents utilise la bibliothèque cURL en interne, elle n'a simplement pas d'options de configuration aussi détaillées.

Détection du mode cURL dans une requête

Il est souvent utile de détecter si la requête courante a été faite via cUrl ou classiquement dans le navigateur.

Il n'y a pas d'implémentation directe pour cela en PHP, mais nous pouvons écrire une fonction simple nous-mêmes :

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

Si vous avez Linux et son Terminal, ou si vous êtes sur un Mac, essayez cette commande :

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

La commande effectue une requête interne à ce site et renvoie le résultat.

Si l'application n'a pas détecté de requête cURL, le HTML sera renvoyé comme si la requête provenait du navigateur. Cependant, puisque les types de demande sont détectés, rien ne nous empêche de renvoyer un article Markdown nettoyé.

L'avantage est alors de disposer de données bien mieux nettoyées. Nous montrons le HTML formaté à l'utilisateur dans le navigateur, mais seulement le contenu de base au robot.

Utilisation détaillée de l'API en PHP

Si vous cherchez une utilisation détaillée de cUrl, je vous recommande de lire la documentation officielle, qui est toujours à jour.

Pour une utilisation occasionnelle, il existe une Guzzle bibliothèque qui gère

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