CakeFest 2024: The Official CakePHP Conference

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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

Описание

curl_share_setopt(CurlShareHandle $share_handle, int $option, mixed $value): bool

Устанавливает опции разделяемого обработчика 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);
?>

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top