Dans PHP, Curl est une bibliothèque puissante qui nous permet d'envoyer des demandes HTTP et d'obtenir des réponses. La fonction curl_share_init () est un mécanisme fourni par Curl pour initialiser une poignée de boucle partagée. Partagez une poignée en boucle, plusieurs sessions Curl peuvent partager certaines options de configuration et données, ce qui peut réduire la consommation de mémoire et améliorer l'efficacité de plusieurs séances de boucle.
Une poignée partagée en boucle est une poignée qui partage des informations entre plusieurs séances de boucle. En utilisant une poignée partagée, nous pouvons laisser différentes sessions en boucle partager certaines informations d'état (telles que les cookies ou les caches DNS). Cela est très utile pour gérer efficacement plusieurs demandes de curl, en particulier lors du traitement des situations où un accès fréquent au même site Web est requis.
La fonction curl_share_init () est utilisée pour initialiser une poignée partagée. Cette fonction ne nécessite aucun paramètre et renvoie une ressource de poignée partagée.
$ch_share = curl_share_init();
Après avoir initialisé la poignée partagée, nous pouvons utiliser la fonction curl_share_setopt () pour définir des options pour la poignée partagée. Ces options peuvent être des cookies partagés, des caches DNS, etc. Nous utilisons la constante Curlshopt_ * pour définir les options de partage.
Par exemple, le code suivant montre comment définir un cookie partagé:
curl_share_setopt($ch_share, CURLSHOPT_COOKIE, true);
Après avoir initialisé et configuré une poignée partagée, nous pouvons transmettre la poignée partagée à chaque session Curl. Cela fait partager ces sessions de boucle. L'exemple de code suivant montre comment partager une poignée partagée entre plusieurs sessions Curl.
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://m66.net/some-path");
curl_setopt($ch1, CURLOPT_SHARE, $ch_share);
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://m66.net/another-path");
curl_setopt($ch2, CURLOPT_SHARE, $ch_share);
// Effectuez plusieurs demandes
curl_exec($ch1);
curl_exec($ch2);
Après avoir utilisé la poignée partagée, nous devons fermer la poignée partagée pour libérer la ressource. Utilisez la fonction curl_share_close () pour fermer la poignée partagée.
curl_share_close($ch_share);
Voici un exemple complet qui montre comment initialiser une poignée partagée à l'aide de curl_share_init () et de la partager entre plusieurs demandes Curl.