Php. cURL. Как получить и отправить cookie?

Главная  >>  Backend  >>  Php. cURL. Как получить и отправить cookie?

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

Как получить cookie?
Красивое решение подсмотрел здесь.

Итак, приведу пример.

Не будем останавливаться на принципах работы cURL в целом — для этого посмотрите статьи по этой теме здесь — обратим внимание лишь на место получения наших cookies.
«Магия» происходит в строке, обозначенной комментарием. В этом месте в ответе сервера мы находим header, в котором есть ключевая фраза Set-Cookie. Так как дальше их значения описываются в строго стандартизованном виде в формате «name-value;» — мы можем получить (при помощи регулярного выражения) ВСЕ полученные куки, а дальше разобрать их в цикле.

На выходе в массиве $cookies мы получим желаемый набор значений с названиями в ключе массива и значениями — в значении.

Как отправить cookie?
Отправка, в отличии от получения, занимает гораздо меньше места — всего одну строку. Поэтому я не буду приводить полный пример — ограничимся коротким примером:

Приведенные примеры, по сути, ничем не отличаются друг от друга. Разница лишь в том, что в первом случае мы вручную прописываем все значения, а во втором случае — читаем набор значений (в том же формате) из файла.

В случае, если Вам нужно отправить несколько кук — используйте разделитель — «точка с запятой» — например, «test1=v1;test2=v2;test3-v3». В этом случае будут переданы три куки.

Собственно это и есть основные моменты для отправки и получения cookies при помощи php и cURL.

Надеюсь статья пригодилась Вам и помогла разобраться с проблемой! Нет? Пишите в комментарии — постараюсь Вам помочь!