Véritable exemple pratique : vous devez redémarrer votre routeur (modem) pour changer l'adresse IP. Pour ce faire, vous devez : vous connecter au routeur, vous rendre sur la page de maintenance et cliquer sur le bouton « Redémarrer ». Si cette action doit être effectuée plusieurs fois, la procédure doit être répétée. D'accord, vous ne voulez pas effectuer cette routine manuellement à chaque fois. cURL vous permet d'automatiser tout cela. Avec seulement quelques commandes cURL, vous pouvez obtenir une autorisation et terminer la tâche sur le routeur.
- cURL est utile pour récupérer des données de sites Web sur la ligne de commande.
Ceux. les cas d'utilisation de cURL sont bien réels, même si, dans la majorité des cas, cURL est nécessaire aux programmeurs qui l'utilisent pour leurs programmes.
CURL prend en charge de nombreux protocoles et méthodes d'autorisation, peut transférer des fichiers, fonctionne correctement avec les cookies, prend en charge les certificats SSL, les proxys et bien plus encore.
cURL en PHP et ligne de commande
Nous pouvons utiliser cURL de deux manières principales : dans les scripts PHP et sur la ligne de commande.
Pour activer cURL en PHP sur le serveur, vous devez décommenter la ligne dans le fichier php.ini
Extension=php_curl.dll
Et puis redémarrez le serveur.
Sous Linux, vous devez installer le package curl.
Sur Debian, Ubuntu ou Linux Mint :
$ sudo apt-get install curl
Sur Fedora, CentOS ou RHEL :
$ sudo miam installer curl
Pour bien voir la différence d'utilisation en PHP et en ligne de commande, nous allons effectuer deux fois les mêmes tâches : d'abord dans le script PHP, puis en ligne de commande. Essayons de ne pas nous tromper.
Récupération de données à l'aide de cURL
Récupération de données à l'aide de cURL en PHP
Exemple en PHP :
Tout est très simple :
$url_cible- l'adresse du site qui nous intéresse. Après l'adresse du site, vous pouvez mettre deux points et ajouter l'adresse du port (si le port est différent de celui standard).
curl_init- initialise une nouvelle session et renvoie un handle, qui dans notre exemple est affecté à une variable $ch.
On exécute ensuite la requête avec la fonction cURL curl_exec, auquel un descripteur est passé en paramètre.
Tout est très logique, mais lorsque ce script sera exécuté, le contenu du site sera affiché sur notre page. Mais que se passe-t-il si nous ne voulons pas afficher le contenu, mais que nous voulons l'écrire dans une variable (pour un traitement ou une analyse ultérieur).
Ajoutons un peu à notre script :
0) ( echo "Erreur de boucle : " . curl_error($ch); ) curl_close($ch); ?>
Nous avons une ligne curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- définit les options. Une liste complète des options peut être trouvée sur cette page :
Caché des invités
$response_data = curl_exec($ch);
La valeur du script est désormais affectée à la variable $response_data, avec laquelle d'autres opérations peuvent être effectuées. Par exemple, vous pouvez afficher son contenu.
des points de suture
Si (curl_errno($ch) > 0) ( echo "Erreur de boucle : " . curl_error($ch); )
servir au débogage en cas d’erreurs.
Récupération de données à l'aide de cURL sur la ligne de commande
Sur la ligne de commande, tapez simplement
où au lieu de mi-al.ru- l'adresse de votre site Internet.
Si vous devez copier des données dans une variable plutôt que d'afficher le résultat à l'écran, procédez comme suit :
Temp="curl mi-al.ru"
Cependant, certaines données sont toujours affichées :
Pour éviter leur affichage, ajoutez la clé -s:
Temp="curl -s mi-al.ru"
Vous pouvez voir ce qui a été enregistré :
Écho $temp | moins
Authentification de base et HTTPL'authentification, en termes simples, consiste à saisir un nom d'utilisateur et un mot de passe.
L'authentification de base est une authentification basée sur le serveur. Pour cela, deux fichiers sont créés : .htaccess Et .htpasswd
Le contenu du fichier .htaccess ressemble à ceci
AuthName "Pour les utilisateurs enregistrés uniquement !" AuthType Basic nécessite un utilisateur valide AuthUserFile /home/freeforum.biz/htdocs/.htpassw
Le contenu du fichier .htpasswd ressemble à ceci :
Mial:CRdiI.ZrZQRRc
Ceux. hachage de connexion et de mot de passe.
Lorsque vous essayez d'accéder à un dossier protégé par mot de passe, le navigateur affichera quelque chose comme ceci :
L'authentification HTTP est le cas lorsque nous saisissons un identifiant et un mot de passe dans un formulaire sur un site Web. C'est cette authentification qui est utilisée lors de la connexion à la messagerie, aux forums, etc.
Authentification cURL de base (PHP)
Il y a un site internet
Caché des invités
Essayons notre script initial :
0) ( echo "Erreur de boucle : " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?>
Bien que le script pense qu’il n’y a pas d’erreur, nous n’aimons pas du tout le résultat :
Ajoutez deux lignes :
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
La première ligne, nous définissons le type d'authentification - basique. La deuxième ligne contient le nom et le mot de passe séparés par deux points (dans notre cas, le nom et le mot de passe sont les mêmes - ru-board). Cela s'est passé comme ceci :
0) ( echo "Erreur de boucle : " . curl_error($ch); ) else ( echo $response_data; ) curl_close($ch); ?> Essayons : 30946 Super ! Authentification cURL de base (sur la ligne de commande) La même chose peut être obtenue sur la ligne de commande avec une seule ligne : curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
Je n'ai pas oublié de préciser le type d'authentification, c'est juste que dans cURL le type d'authentification de base est celui par défaut.
Tout s'est déroulé si rapidement en ligne de commande que, par frustration, j'ai écrit le programme suivant. Elle se connecte au site et télécharge la dernière mise à jour :
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Update_FED_201(1).(2).(2).7z" | unique | queue -n 1`; curl -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
Avec seulement quelques commandes supplémentaires, vous pouvez ajouter :
- décompresser l'archive dans le répertoire spécifié ;
- lancer les mises à jour de ConsultantPlus (ce sont des mises à jour pour celui-ci) ;
- vous pouvez vérifier si la dernière mise à jour disponible a déjà été téléchargée ou si une nouvelle est apparue ;
- ajoutez le tout à Cron pour des mises à jour quotidiennes.
Authentification HTTP cURL en PHP
Nous avons besoin de savoir:
- adresse où envoyer les données d'authentification
- méthode d'envoi GET ou POST
- se connecter
- mot de passe
L'adresse à laquelle vous devez envoyer les données peut être extraite du formulaire d'authentification. Par exemple: