PHP fournit une bibliothèque Curl qui peut facilement envoyer des demandes HTTP via Curl . Curl est un outil puissant qui est largement utilisé dans les demandes HTTP, l'envoi de données de formulaire, les pages Web rampantes et d'autres opérations. Pour simplifier ces opérations, PHP fournit certaines fonctions, dont la plus importante est curl_init () . Il est utilisé pour initialiser une session Curl, nous permettant de commencer à envoyer des demandes.
Dans cet article, nous montrerons comment utiliser Curl_Init () pour initialiser une session CURL et combiner Curl_setopt () , Curl_exec () et d'autres fonctions pour envoyer des demandes HTTP.
Avant d'envoyer une demande à l'aide de Curl, nous devons d'abord initialiser une session Curl. PHP fournit la fonction curl_init () pour initialiser une nouvelle session Curl, qui renvoie une poignée Curl que nous pouvons utiliser pour configurer les options de demande et finalement exécuter la demande.
<?php
// Initialiser un cURL Session
$ch = curl_init();
?>
À l'heure actuelle, la variable $ ch renvoyée par curl_init () est une poignée Curl qui représente la session Curl actuelle. Ensuite, nous pouvons configurer certaines des options demandées via cette poignée.
En utilisant la fonction curl_setopt () , nous pouvons définir diverses options pour les sessions Curl. Les options les plus couramment utilisées consistent à définir l'URL de demande, la méthode de demande, les informations d'en-tête de demande, etc.
Pour définir l'URL cible demandée, vous pouvez utiliser l'option Curlopt_url .
// Définir demandé URL
curl_setopt($ch, CURLOPT_URL, "http://gitbox.net/example");
Par défaut, la fonction curl_exec () publiera le résultat demandé directement au navigateur. Si nous voulons obtenir le résultat de la demande au lieu de le sortir directement, nous pouvons le contrôler via l'option Curlopt_returntransfer .
// Définissez le contenu de retour sans sortie directe
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Curl prend en charge une variété de méthodes HTTP, telles que Get , Post , Put , etc. Si vous souhaitez utiliser la méthode Post , vous pouvez la définir via Curlopt_Post :
// Définissez la méthode de demande à POST
curl_setopt($ch, CURLOPT_POST, true);
// installation POST données
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'username' => 'testuser',
'password' => 'testpassword'
]));
Si vous devez définir des en-têtes HTTP personnalisés, vous pouvez utiliser l'option Curlopt_httpheader :
// installation自定义的 HTTP tête
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'Authorization: Bearer token_value'
]);
Une fois toutes les options configurées, vous pouvez utiliser la fonction curl_exec () pour exécuter la demande et obtenir la réponse. Cette fonction renvoie le résultat demandé. Si aucune erreur ne se produit, le résultat renvoyé est le contenu de la réponse de l'URL cible.
// Exécutez la demande et obtenez le résultat de la réponse
$response = curl_exec($ch);
// Vérifiez si la demande est réussie
if ($response === false) {
echo "cURL erreur:" . curl_error($ch);
} else {
echo "La demande a réussi,Contenu de réponse:" . $response;
}
Une fois la demande terminée, la session Curl doit être fermée pour libérer la ressource. Les séances de boucles fermées sont une bonne habitude, en particulier lors de la gestion d'un grand nombre de demandes, ce qui contribue à améliorer les performances du système.
// fermeture cURL Session
curl_close($ch);
Voici un exemple complet de la façon d'initialiser, de définir des options, d'envoyer des demandes et d'obtenir des résultats de réponse via PHP.
<?php
// initialisation cURL Session
$ch = curl_init();
// Définir demandé URL
curl_setopt($ch, CURLOPT_URL, "http://gitbox.net/example");
// Définissez le contenu de retour sans sortie directe
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Définissez la méthode de demande à POST
curl_setopt($ch, CURLOPT_POST, true);
// installation POST données
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'username' => 'testuser',
'password' => 'testpassword'
]));
// installation自定义的 HTTP tête
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
'Authorization: Bearer token_value'
]);
// Exécutez la demande et obtenez le résultat de la réponse
$response = curl_exec($ch);
// Vérifiez si la demande est réussie
if ($response === false) {
echo "cURL erreur:" . curl_error($ch);
} else {
echo "La demande a réussi,Contenu de réponse:" . $response;
}
// fermeture cURL Session
curl_close($ch);
?>