- PHP Manual
- Функции cURL
- Установить опции разделяемого обработчика cURL
curl_share_setopt
(PHP 5 >= 5.5.0, PHP 7)
curl_share_setopt — Установить опции разделяемого обработчика cURL
Описание
Устанавливает опции разделяемого обработчика cURL.
Список параметров
-
share_handle
-
Разделяемый обработчик cURL, возвращаемый curl_share_init().
-
option
-
Опция Описание CURLSHOPT_SHARE
Задает тип данных, которые необходимо разделять. CURLSHOPT_UNSHARE
Задает тип данных, которые больше не надо разделять. -
value
-
Значение Описание CURL_LOCK_DATA_COOKIE
Разделяет данные cookie. CURL_LOCK_DATA_DNS
Разделяет кеш DNS. Обратите внимание, что если вы используете множественный обработчик cURL, то все добавленные обработчики по умолчанмю будут разделять DNS-кеш. CURL_LOCK_DATA_SSL_SESSION
Разделяет идентификаторы сессии SSL, сокращая время, затрачиваемое на подтверждение (handshake) SSL при повторном соединении к тому же самому серверу. Обратите внимание, что идентификаторы сессии SSL будут по умолчанию переиспользоваться тем же самым обработчиком.
Возвращаемые значения
Возвращает true
в случае успешного завершения или false
в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
8.0.0 |
share_handle expects a CurlShareHandle
instance now; previously, a resource was expected.
|
Примеры
Пример #1 Пример использования curl_share_setopt()
В этом примере мы создаем разделяемый обработчик cURL, добавляем в него два обычных обработчика и запускаем их. Они будут использовать одни и те же куки.
<?php
// Создаем разделяемый обработчик и настраиваем его на обмен куками
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
// Инициализируем первый обработчик cURL и связываем его с разделяемым
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);
// Запускаем первый запрос
curl_exec($ch1);
// Инициализируем второй обработчик cURL и связываем его с разделяемым
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);
// Запускаем второй обработчик.
// Ему будут доступны все куки от первого обработчика $ch1
curl_exec($ch2);
// Закрываем разделяемый обработчик
curl_share_close($sh);
// Закрываем оба обычных обработчика
curl_close($ch1);
curl_close($ch2);
?>