Maison  >  Article  >  développement back-end  >  Premiers pas avec PHP : extension CURL

Premiers pas avec PHP : extension CURL

王林
王林original
2023-05-21 08:36:051744parcourir

PHP est un langage largement utilisé dans le développement Web et CURL est l'une des extensions les plus utilisées en PHP. Cet article vous présentera l'utilisation et l'application de base de CURL pour aider les débutants à démarrer rapidement.

1. Introduction à CURL

CURL est un outil de ligne de commande qui utilise la syntaxe URL pour transférer des données. C'est également une bibliothèque qui prend en charge plusieurs protocoles et peut s'exécuter sur plusieurs plates-formes. Lors de l'utilisation de l'extension CURL en PHP, elle est principalement utilisée pour la communication réseau via des protocoles tels que HTTP et HTTPS pour envoyer des données à d'autres serveurs, obtenir des réponses du serveur, simuler la soumission de formulaires, etc.

2. Installation de CURL

Pour utiliser l'extension CURL en PHP, vous devez confirmer que l'environnement local prend en charge la bibliothèque CURL. Sous Linux et Mac OS

Une fois l'installation terminée, vous pouvez vérifier si elle a été installée via la fonction phpinfo() S'il est indiqué que la prise en charge de curl est activée, cela signifie que le support curl est activé. L'extension CURL est prête.

3. Utilisation de base de CURLphpinfo()函数查看是否已经安装完毕,如果提示curl支持已启用,则表示CURL扩展已经准备就绪。

三、CURL的基本用法

  1. 发送GET请求

发送GET请求的基础格式为:

sudo apt-get install libcurl4-openssl-dev // Debian/Ubuntu 

sudo yum install curl-devel // CentOS/Fedora

其中,curl_init()函数用于初始化一个CURL对象,curl_setopt()函数用于设置CURL请求的选项,curl_exec()函数用于执行CURL请求并获取响应结果,curl_close()函数用于关闭CURL对象。

在上述例子中,我们使用curl_setopt()函数设置了请求的URL、CURLOPT_RETURNTRANSFER选项和CURLOPT_HEADER选项。其中,CURLOPT_RETURNTRANSFER选项设置为1时,表示将获取的响应结果以字符串的形式返回。CURLOPT_HEADER选项设置为0时,则表示在响应结果中不包含响应头部信息。

  1. 发送POST请求

发送POST请求的基本格式为:

<?php
//创建CURL对象
$ch = curl_init();
//设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://api.example.com/user?id=123");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行CURL请求并获取响应结果
$output = curl_exec($ch);
//关闭CURL对象
curl_close($ch);
//输出响应结果
echo $output; 
?>

其中,curl_setopt()函数新增了两个选项:CURLOPT_POSTCURLOPT_POSTFIELDSCURLOPT_POST选项设置为1时,表示采用POST方式发送请求,CURLOPT_POSTFIELDS选项设置为字符串时,表示将这些数据作为POST请求的正文发送。

需要注意的是,为了能够正确地将POST数据发送给服务器,需要设置正确的Content-Type头部信息。这可以通过curl_setopt()函数的CURLOPT_HTTPHEADER选项进行设置。

四、CURL的进阶用法

  1. 设置HTTP头部信息

可以通过curl_setopt()函数的CURLOPT_HTTPHEADER选项来设置HTTP头部信息。

<?php
//创建CURL对象
$ch = curl_init();
//设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://api.example.com/user");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=123&name=John");

//执行CURL请求并获取响应结果
$output = curl_exec($ch);
//关闭CURL对象
curl_close($ch);
//输出响应结果
echo $output;
?>

以上代码设置了Content-Type头部信息为application/json,设置了一个名为Authorization的头部信息,并为其设置了值。这个头部信息的作用是为请求提供一个安全令牌,以便服务器能够验证请求的合法性。

  1. SSL/TLS验证

SSL/TLS验证是一种通过判断加密证书的合法性来确保请求的安全性的机制。CURL提供了多种安全验证方式,可以通过curl_setopt()函数的CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST

    Envoyer une requête GET

    Le format de base de l'envoi d'une requête GET est :

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer xxx'));
      Parmi eux, la fonction curl_init() est utilisée pour initialiser. un objet CURL, La fonction curl_setopt() permet de définir les options de la requête CURL, la fonction curl_exec() permet d'exécuter la requête CURL et d'obtenir la réponse résultat, la fonction curl_close() est utilisée pour fermer l'objet CURL.
    1. Dans l'exemple ci-dessus, nous utilisons la fonction curl_setopt() pour définir l'URL demandée, l'option CURLOPT_RETURNTRANSFER et l'option CURLOPT_HEADER. Parmi eux, lorsque l'option CURLOPT_RETURNTRANSFER est définie sur 1, cela signifie que le résultat de la réponse obtenue sera renvoyé sous la forme d'une chaîne. Lorsque l'option CURLOPT_HEADER est définie sur 0, cela signifie que les informations d'en-tête de réponse ne sont pas incluses dans le résultat de la réponse.

      Envoyer une requête POST

      Le format de base de l'envoi d'une requête POST est :

      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

      Parmi eux, la fonction curl_setopt() ajoute deux nouvelles options : CURLOPT_POST et CURLOPT_POSTFIELDS. Lorsque l'option CURLOPT_POST est définie sur 1, cela signifie que la requête est envoyée en mode POST. Lorsque l'option CURLOPT_POSTFIELDS est définie sur une chaîne, cela signifie que ces données sont envoyées. envoyé comme corps de la requête POST.

      Il convient de noter que pour envoyer correctement les données POST au serveur, les informations d'en-tête Content-Type correctes doivent être définies. Ceci peut être défini via l'option CURLOPT_HTTPHEADER de la fonction curl_setopt(). 🎜🎜4. Utilisation avancée de CURL🎜
        🎜Définir les informations d'en-tête HTTP🎜🎜🎜Vous pouvez définir l'en-tête HTTP via l'option CURLOPT_HTTPHEADER de la fonction curl_setopt(). information. 🎜
        curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies');
        🎜Le code ci-dessus définit les informations d'en-tête Content-Type sur application/json, définit des informations d'en-tête nommées Authorization et définit une valeur pour celles-ci. Le but de cet en-tête est de fournir un jeton de sécurité pour la requête afin que le serveur puisse vérifier la légitimité de la requête. 🎜
          🎜Vérification SSL/TLS🎜🎜🎜La vérification SSL/TLS est un mécanisme permettant d'assurer la sécurité de la requête en jugeant de la légitimité du certificat de chiffrement. CURL fournit une variété de méthodes de vérification de sécurité, qui peuvent être réalisées via les options CURLOPT_SSL_VERIFYPEER et CURLOPT_SSL_VERIFYHOST de la fonction curl_setopt(). 🎜🎜Par exemple, le code suivant peut être utilisé pour désactiver la vérification du certificat SSL : 🎜
          curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies');
          🎜Il est à noter que dans les applications actuelles, il est très important d'activer autant que possible la vérification du certificat SSL pour assurer la sécurité de la demande. 🎜🎜🎜Traitement des cookies🎜🎜🎜CURL peut gérer automatiquement les cookies HTTP, ce qui offre une grande commodité pour la gestion des sessions utilisateur. Nous pouvons utiliser l'option CURLOPT_COOKIEJAR de la fonction curl_setopt() pour enregistrer les informations de cookie renvoyées par le serveur. 🎜rrreee🎜Lors de l'envoi de la requête suivante, utilisez l'option CURLOPT_COOKIEFILE de la fonction curl_setopt() pour spécifier le chemin du fichier où les informations du cookie sont enregistrées. 🎜rrreee🎜 4. Résumé🎜🎜Grâce à l'introduction de cet article, je pense que les lecteurs ont initialement compris l'utilisation de base de l'extension CURL, notamment l'envoi de requêtes GET/POST, la définition des informations d'en-tête HTTP, la vérification SSL/TLS et le traitement des cookies. aidez-nous à mieux programmer les communications réseau. Ensuite, vous pouvez essayer d'utiliser les extensions CURL pour développer des applications réseau pratiques, continuer à en apprendre davantage et améliorer vos compétences en programmation. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn