(PHP 8 >= 8.5.0)
curl_share_init_persistent — Initialise un gestionnaire cURL "share" persistent
Initialise un gestionnaire cURL "share" persistent
avec les options de partage données. Contrairement à curl_share_init(),
les gestionnaires créés par cette fonction ne seront pas détruits à la fin de la
requête PHP. Si un gestionnaire de partage persistant avec le même ensemble
d'share_options
est trouvé, il sera réutilisé.
share_options
CURL_LOCK_DATA_*
.
Note:
CURL_LOCK_DATA_COOKIE
n'est pas autorisé et, s'il est spécifié, cette fonction lancera une ValueError. Le partage de cookies entre les requêtes PHP peut entraîner un mélange involontaire de cookies sensibles entre les utilisateurs.
Renvoie un CurlSharePersistentHandle.
share_options
est vide, cette fonction lève
une ValueError.
share_options
contient une valeur ne correspondant
pas à une CURL_LOCK_DATA_*
,
cette fonction lève une ValueError.
share_options
contient
CURL_LOCK_DATA_COOKIE
, cette fonction lève une
ValueError.
share_options
contient une valeur non entière,
cette fonction lève une TypeError.
Exemple #1 curl_share_init_persistent() example
Cette example va créer un gestionnaire cURL "share" persistant et démontrer
le partage de connexions entre eux. Si cela est exécuté dans un SAPI PHP
à longue durée de vie, $sh
survivra entre les requêtes SAPI.
<?php
// Créer ou récupère un gestionnaire cURL "share" persistant configuré pour partager les recherches DNS et les connexions
$sh = curl_share_init_persistent([CURL_LOCK_DATA_DNS, CURL_LOCK_DATA_CONNECT]);
// Initialise le premier gestionnaire cURL et lui attribue le gestionnaire de partage
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);
// Exécute le premier gestionnaire cURL. Cela peut réutiliser la connexion d'une requête SAPI précédente
curl_exec($ch1);
// Initialise le second gestionnaire cURL et lui attribue le gestionnaire de partage
$ch2 = curl_init("http://example.com/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);
// Exécute le second gestionnaire cURL. Cela peut réutiliser la connexion de $ch1
curl_exec($ch2);
?>