Explication détaillée de l'utilisation de CURL en PHP
Le contenu de cet article présente une explication détaillée de l'utilisation de CURL en PHP. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
CURL est un open source très puissant. bibliothèque qui prend en charge de nombreux protocoles, notamment HTTP, FTP, TELNET, etc., nous l'utilisons pour envoyer des requêtes HTTP. L'avantage que cela nous apporte est que nous pouvons définir différents paramètres du protocole HTTP via des options flexibles et prendre en charge HTTPS. CURL peut choisir automatiquement de crypter le contenu envoyé selon que le préfixe de l'URL est "HTTP" ou "HTTPS".
Le processus de base d'envoi d'une requête à l'aide de CURL
Utiliser l'extension PHP de CURL pour terminer l'envoi d'une requête HTTP comporte généralement les étapes suivantes :
Initialisez la poignée de connexion ;
Définissez les options CURL ;
-
Exécutez et obtenez le résultat
Relâchez le handle de connexion VURL.
Le fragment de programme suivant est un processus typique d'envoi HTTP à l'aide de CURL
// 1. 初始化 $ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); // 3. 执行并获取HTML文档内容 $output = curl_exec($ch); if($output === FALSE ){ echo "CURL Error:".curl_error($ch); } // 4. 释放curl句柄 curl_close($ch);
Quatre fonctions sont utilisées dans le code ci-dessus
curl_init() et curl_close() respectivement Il est relativement simple d'initialiser la connexion CURL et de fermer la connexion CURL.
curl_exec() exécute une requête CURL. Si aucune erreur ne se produit, la fonction renvoie les données renvoyées par l'URL correspondante, indiquant la satisfaction sous forme de chaîne ; si une erreur se produit, la fonction renvoie ; FAUX. Il convient de noter que le signe égal est utilisé pour déterminer si la sortie est FALSE. Ceci permet de faire la distinction entre le retour d'une chaîne vide et une erreur.
La fonction la plus importante de la bibliothèque de fonctions CURL est curl_setopt(), qui peut personnaliser les requêtes HTTP en définissant les options définies par la bibliothèque de fonctions CURL. Trois options importantes sont utilisées dans l'extrait de code ci-dessus :
CURLOPT_URL spécifie l'URL demandée
CURLOPT_RETURNTRANSFER est défini sur 1 ; Le retour de la fonction curl_exec exécutée plus tard est la chaîne de retour de l'URL, au lieu de diriger la chaîne de retour vers la sortie standard et de renvoyer TRUE
CURLLOPT_HEADER est défini sur 0 pour indiquer que ; aucun en-tête HTTP n'est renvoyé d'informations sur le service.
Il existe de nombreuses options pour CURL, vous pouvez vous rendre sur le site officiel de PHP (http://www.php.net/manual/en/function.curl-setopt. php ) pour afficher une liste de toutes les options prises en charge par CURL.
Obtenir les informations de sortie de la requête CURL
Une fois la fonction curl_exec() exécutée, vous pouvez utiliser la fonction curl_getinfo() pour obtenir les informations pertinentes de sortie de la requête CURL. le code est le suivant :
curl_exec($ch);$info = curl_getinfo($sh);echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';
上述代码中curl_getinfo返回的是一个关联数组,包含以下数据:
url:网络地址。
content_type:内容编码。
http_code:HTTP状态码。
header_size:header的大小。
request_size:请求的大小。
filetime:文件创建的时间。
ssl_verify_result:SSL验证结果。
redirect_count:跳转计数。
total_time:总耗时。
namelookup_time:DNS查询耗时。
connect_time:等待连接耗时。
pretransfer_time:传输前准备耗时。
size_uplpad:上传数据的大小。
size_download:下载数据的大小。
speed_download:下载速度。
speed_upload:上传速度。
download_content_length:下载内容的长度。
upload_content_length:上传内容的长度。
starttransfer_time:开始传输的时间表。
redirect_time:重定向耗时。
curl_getinfo()函数还有一个可选择参数$opt,通过这个参数可以设置一些常量,对应到上术这个字段,如果设置了第二个参数,那么返回的只有指定的信息。例如设置$opt为CURLINFO_TOTAL_TIME,则curl_getinfo()函数只返回total_time,即总传输消耗的时间,在只需要关注某些传输信息时,设置$opt参数很有意义。
使用CURL发送GET请求
如何使用CURL来发送GET请求,发送GET请求的关键是拼装格式正确的URL。请求地址和GET数据由一个“?”分割,然后GET变量的名称和值用“=”分隔,各个GET名称和值由“&”连接。PHP为我们提供了一个函数专门用来拼装GET请求和数据部分——http_build_query,该函数接受一个关联数组,返回由该关联数据描述的GET请求字符串。使用这个函数,结合CURL发送HTTP请求的一般流程,我们封闭了一个发送GET请求的函数——doCurlGetRequest,具体代码如下:
** *@desc 封闭curl的调用接口,get的请求方式。*/function doCurlGetRequest($url,$data,$timeout = 5){ if($curl == "" || $timeout <p class="cnblogs_code_toolbar" style="margin:5px 0px 0px;padding:0px;"><span class="cnblogs_code_copy" style="margin:0px;padding:0px 5px 0px 0px;line-height:1.5;"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/153/291/88596a8d53f6dae6de7dddd6f6df4237-0.gif" class="lazy" alt="Explication détaillée de lutilisation de CURL en PHP"></span></p><p style="max-width:90%">这个函数把使用http_build_query 拼装好的带GET参数的URL传给curl_init函数,然后使用CURL发送HTTP请求。</p><h2 id="使用CURL发送POST请求">使用CURL发送POST请求</h2><p style="margin:10px auto;color:rgb(51,51,51);font-family:Verdana, Arial, Helvetica, sans-serif;font-size:14px;background-color:rgb(255,255,255);">可以使用CURL提供的选项CURLOPT_POSTFIELDS,设置该选项为POST字符串数据就可以把请求放在正文中。同样我们实现了一个发送POST请求的函数——doCurlPostRequest,代码如下:</p><p class="cnblogs_code" style="margin:5px 0px;padding:5px;background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);color:rgb(0,0,0);font-family:'Courier New';font-size:12px;"><br></p><p class="cnblogs_code_toolbar" style="margin:5px 0px 0px;padding:0px;"><span class="cnblogs_code_copy" style="margin:0px;padding:0px 5px 0px 0px;line-height:1.5;"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/153/291/88596a8d53f6dae6de7dddd6f6df4237-0.gif" class="lazy" alt="Explication détaillée de lutilisation de CURL en PHP"></span></p><pre style="max-width:90%"Courier New';" class="brush:php;toolbar:false;">/** ** @desc 封装 curl 的调用接口,post的请求方式 **/function doCurlPostRequest($url,$requestString,$timeout = 5){ if($url == '' || $requestString == '' || $timeout <p class="cnblogs_code_toolbar" style="margin:5px 0px 0px;padding:0px;"><span class="cnblogs_code_copy" style="margin:0px;padding:0px 5px 0px 0px;line-height:1.5;"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/153/291/88596a8d53f6dae6de7dddd6f6df4237-0.gif" class="lazy" alt="Explication détaillée de lutilisation de CURL en PHP"></span></p><p style="max-width:90%">上面代码中除了设置CURLOPT_POSTFIELDS外,我们还设置了CURL_POST为true,标识这个请求是一个POST请求。在POST请求中也是可以传输GET数据的,只需要在URL中拼装GET请求数据即可秀</p><p style="margin: 10px auto; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);">相关推荐:</p><p style="margin: 10px auto; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);"><a href="http://www.php.cn/php-weizijiaocheng-392124.html" target="_self">PHP中如何利用CURL实现GET和POST请求</a></p><p style="margin: 10px auto; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);"><a href="http://www.php.cn/php-weizijiaocheng-392115.html" target="_self">PHP利用CURL将他人服务器图片上传到自己的图片云空间</a></p><p style="margin: 10px auto; color: rgb(51, 51, 51); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);"><a href="http://www.php.cn/php-weizijiaocheng-392063.html" target="_self">PHP中的curl 函数并发实现减少后端访问时间</a></p>
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
