Position actuelle: Accueil> Derniers articles> curl_share_init () + curl_init (): les étapes correctes pour construire une session partagée

curl_share_init () + curl_init (): les étapes correctes pour construire une session partagée

M66 2025-05-23

Dans PHP, Curl est un outil très puissant qui peut être utilisé pour faire diverses demandes de réseau. Curl_Init () est une fonction utilisée pour initialiser une session Curl, tandis que Curl_share_init () est utilisée pour initialiser une session partagée. Grâce à ces deux fonctions, nous pouvons implémenter différents partage de session et échange de données, améliorant ainsi l'efficacité.

Cet article analysera en détail comment utiliser ces deux fonctions pour vous aider à créer une session partagée.

1. Qu'est-ce qu'une session partagée?

Les sessions partagées permettent à plusieurs sessions de curl de partager certains paramètres, tels que les cookies, les caches de résolution DNS, etc. Lorsque vous faites plusieurs demandes, évitez les paramètres en double des connexions réseau, les informations d'authentification, les informations d'en-tête, etc., optimisant ainsi les performances et l'utilisation des ressources.

2. Fonctions de base de curl_share_init () et curl_init ()

  • curl_init () : initialise une nouvelle session CURL et renvoie une poignée Curl. Avec cette poignée, nous pouvons configurer et exécuter les demandes HTTP.

  • curl_share_init () : initialisez une poignée de session partagée, permettant à plusieurs sessions Curl de partager les paramètres. Vous pouvez définir du contenu partagé, tel que des cookies, DNS, des sessions SSL, etc.

3. Étapes pour construire une session partagée

Étape 1: Initialiser la session partagée

Tout d'abord, nous devons créer une poignée de session partagée à l'aide de curl_share_init () .

 $share = curl_share_init();

Étape 2: Définissez les options de partage

Une fois la poignée de session partagée créée, nous pouvons définir les options que nous devons partager. Les options de partage courantes incluent:

  • CURLSHOPT_COOKIE : Partagez des cookies.

  • Curlshopt_dns : cache DNS partagé.

  • Curlshopt_ssl : partagez une session SSL.

Par exemple, définissez des cookies partagés:

 curl_share_setopt($share, CURLSHOPT_COOKIE, true);

Étape 3: Initialiser la session Curl

Ensuite, nous initialisons la poignée de session Curl à l'aide de curl_init () . La session ici est associée à une session partagée, permettant de partager les paramètres.

 $ch = curl_init();

Étape 4: Définissez les options de curl

Définissez les options nécessaires pour la session Curl. Par exemple, définissez les URL et les résultats de retour, etc.

 curl_setopt($ch, CURLOPT_URL, "http://m66.net/api/endpoint");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SHARE, $share);  // Conversation partagée

Étape 5: Exécutez la demande

Exécutez la demande HTTP via curl_exec () et obtenez le résultat.

 $response = curl_exec($ch);
if ($response === false) {
    echo "cURL Error: " . curl_error($ch);
}

Étape 6: Fermez la session

Une fois la demande terminée, nous devons fermer la session Curl et la session partagée.

 curl_close($ch);
curl_share_close($share);

4. Exemple de code complet

 <?php

// 初始化Conversation partagée
$share = curl_share_init();
curl_share_setopt($share, CURLSHOPT_COOKIE, true);

// Initialiser le premier cURL Session
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://m66.net/api/endpoint1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_SHARE, $share);
$response1 = curl_exec($ch1);
if ($response1 === false) {
    echo "cURL Error: " . curl_error($ch1);
}
curl_close($ch1);

// Initialiser la seconde cURL Session
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "http://m66.net/api/endpoint2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_SHARE, $share);
$response2 = curl_exec($ch2);
if ($response2 === false) {
    echo "cURL Error: " . curl_error($ch2);
}
curl_close($ch2);

// 关闭Conversation partagée
curl_share_close($share);
?>

5. Choses à noter

  • Assurez-vous qu'il n'y a pas d'autre interférence opérationnelle entre Curl_share_Init () et Curl_share_Setopt () .

  • Les séances partagées doivent être fermées une fois toutes les séances de boucle terminées.

  • Si vous souhaitez les paramètres de partage des sessions lors de l'exécution de plusieurs demandes, assurez-vous que chaque demande est transmise dans la même poignée partagée.

6. Résumé

En utilisant curl_share_init () et curl_init (), nous pouvons partager des données et des paramètres sur plusieurs sessions Curl, optimisant les performances et réduisant les configurations de demande redondantes. Les séances partagées amélioreront considérablement l'efficacité lors de la réalisation de demandes à haute fréquence, en particulier dans les scénarios impliquant des cookies et des caches DNS.

J'espère que cet article peut vous aider à mieux comprendre comment utiliser Curl dans PHP pour créer des sessions partagées et améliorer les performances de votre code.