Curl - получение JSESSIONID - PullRequest
4 голосов
/ 29 июня 2011

Я пытаюсь получить значение сеанса и сохранить его в переменной .. как это можно сделать?

Пример:

curl_setopt($ch, CURLINFO_HEADER_OUT, true);
print_r(curl_getinfo($ch));

Выход:

[request_header] => POST /customer.jsp?c=4 HTTP/1.1 
 Host: webdadasasd.co.uk 
 Accept: */* 
 Cookie: JSESSIONID=0000-dsfsdfsdf-sdfsdfsd_:fsdfsdfds 
 Content-Length: 54 
 Content-Type: application/x-www-form-urlencoded )

Я хочу получить значение Cookie только так: JSESSIONID = 0000-dsfsdfsdf-sdfsdfsd_: fsdfsdfds

Ответы [ 3 ]

3 голосов
/ 29 июня 2011

Используйте php's http_parse_headers .(требуется pecl_http) Если у вас нет / want pecl_http, вы можете найти альтернативы в обсуждении на этой странице руководства php.

0 голосов
/ 29 июня 2011

Я думаю, что [request_header] является одним значением, поэтому я бы использовал следующее регулярное выражение:

preg_match('/Cookie: ([[:graph:]]+)/', curl-getinfo($ch)['request_header'], $matches);
echo $matches[1];

Протестировано с http://www.quanetic.com/Regex

Ссылка: http://www.php.net/manual/en/regexp.reference.character-classes.php

0 голосов
/ 29 июня 2011

Не могли бы вы сделать что-то вроде следующего?

preg_match('/^Cookie: (\w\d)+/m', curl-getinfo($ch), $matches);

Регулярное выражение не так уж и хорошо - оно, вероятно, нуждается в ужесточении в отношении используемого мной подшаблона.Тем не менее, я только что проверил регулярное выражение, и оно работает как задумано.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...