curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_share_setoptУстановить опции разделяемого обработчика cURL

Описание

curl_share_setopt ( resource $sh , int $option , string $value ) : bool

Устанавливает опции разделяемого обработчика cURL.

Список параметров

sh

Обработчик 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 в случае возникновения ошибки.

Примеры

Пример #1 Пример использования curl_share_setopt()

В этом примере мы создаем разделяемый обработчик cURL, добавляем в него два обычных обработчика и запускаем их. Они будут использовать одни и те же куки.

<?php
// Создаем разделяемый обработчик и настраиваем его на обмен куками
$sh curl_share_init();
curl_share_setopt($shCURLSHOPT_SHARECURL_LOCK_DATA_COOKIE);

// Инициализируем первый обработчик cURL и связываем его с разделяемым
$ch1 curl_init("http://example.com/");
curl_setopt($ch1CURLOPT_SHARE$sh);

// Запускаем первый запрос
curl_exec($ch1);

// Инициализируем второй обработчик cURL и связываем его с разделяемым
$ch2 curl_init("http://php.net/");
curl_setopt($ch2CURLOPT_SHARE$sh);

// Запускаем второй обработчик.
//  Ему будут доступны все куки от первого обработчика $ch1
curl_exec($ch2);

// Закрываем разделяемый обработчик
curl_share_close($sh);

// Закрываем оба обычных обработчика
curl_close($ch1);
curl_close($ch2);
?>