Position actuelle: Accueil> Derniers articles> Curl_share_init () et curl_init () sont-ils la même chose?

Curl_share_init () et curl_init () sont-ils la même chose?

M66 2025-06-06

Curl_Init () est l'une des fonctions Curl les plus couramment utilisées. Sa fonction consiste à initialiser une poignée de session de curl pour diverses opérations de curl ultérieures. Chaque fois que Curl_Init () est utilisé, une poignée Curl est renvoyée, qui est la base des opérations ultérieures. Grâce à lui, nous pouvons définir des options de demande, exécuter les demandes, obtenir des réponses, etc.

Utilisation de base:

 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://m66.net/api/endpoint");  // Définir demandéURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  // Définissez la valeur de retour sur une chaîne,Au lieu de sortir directement
$response = curl_exec($ch);  // Exécutez une demande et obtenez une réponse
curl_close($ch);  // fermeture cURL Poignée

Curl_Init () est principalement utilisé pour initialiser les demandes Curl. Cela n'implique pas de partage de paramètres entre plusieurs demandes. Par conséquent, chaque fois qu'une nouvelle demande est lancée, Curl_Init () doit être appelée pour créer une nouvelle poignée de session.

2. Fonction Curl_share_Init ()

Contrairement à Curl_Init () , Curl_share_Init () est une fonction utilisée pour créer une ressource partagée, qui renvoie une poignée partagée. Cette poignée peut partager des ressources en plusieurs sessions de boucle, telles que les connexions, les cookies, les recherches DNS, etc. Il est utilisé pour implémenter les paramètres de partage sur plusieurs sessions de boucle, souvent utilisées lors de la réalisation de demandes simultanées pour réduire la charge de travail en double et améliorer les performances.

Utilisation de base:

 $ch1 = curl_init();
$ch2 = curl_init();

// 创建共享Poignée
$sh = curl_share_init();

// 设置共享Poignée的资源
curl_setopt($ch1, CURLOPT_SHARE, $sh);
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Définir les autres cURL Demander des options
curl_setopt($ch1, CURLOPT_URL, "https://m66.net/api/endpoint1");
curl_setopt($ch2, CURLOPT_URL, "https://m66.net/api/endpoint2");

curl_exec($ch1);
curl_exec($ch2);

// fermeture会话和共享Poignée
curl_close($ch1);
curl_close($ch2);
curl_share_close($sh);

Dans cet exemple, la poignée partagée $ SH renvoyée par Curl_share_Init () est définie sur $ ch1 et $ ch2 en deux sessions Curl différentes, afin qu'elles puissent partager des ressources. curl_share_init () est principalement utilisé pour améliorer les performances lors de la demande en parallèle, et il permet à plusieurs sessions Curl de partager la même configuration.

3. La différence entre curl_init () et curl_share_init ()

Points de différence curl_init () curl_share_init ()
Fonction Initialiser une poignée de session Curl pour lancer une seule demande HTTP Initialiser une poignée de ressources partagée pour plusieurs sessions pour partager les ressources
Valeur de retour Retourner une poignée en boucle Renvoie une poignée partagée pour le partage des ressources
Utiliser des scénarios Demande de boucle unique Partagez la configuration et les ressources entre plusieurs demandes de curl
Partager des ressources Les ressources partagées ne sont pas prises en charge Prend en charge les connexions partagées, les cookies, la recherche DNS et d'autres ressources
Opérations lorsqu'elles sont fermées Fermer en utilisant curl_close () Fermez la poignée partagée à l'aide de curl_share_close ()

En général, Curl_Init () est utilisé pour initialiser une seule demande Curl, tandis que Curl_share_Init () est utilisé pour créer des ressources partagées pour plusieurs sessions Curl. Ils sont utilisés et appliqués de différentes manières, mais curl_share_init () peut améliorer considérablement les performances lorsque les demandes simultanées.