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-сессий. Разделение идентификаторов сессий сокращает время SSL-рукопожатия при повторном подключении к тому же серверу. Обратите внимание, отдельный дескриптор повторно использует свои идентификаторы SSL-сессий по умолчанию.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 Параметр share_handle теперь ожидает экземпляр класса CurlShareHandle; рарьше параметр ждал ресурс (resource).

Примеры

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

Пример создаёт разделяемый cURL-дескриптор, добавляет в него два простых cURL-дескриптора и запускает простые дескрипторы с разделяемыми данными cookie.

<?php

// Создаём разделяемый дескриптор модуля cURL и настраиваем его на разделение данных cookie
$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-дескриптор
curl_exec($ch1);

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

// Запускаем второй дескриптор.
// Cookies первого дескриптора $ch1 разделяются со вторым дескриптором $ch2
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