Я хочу получить значение sid из двух последних заголовков set-cookie после публикации запроса.
sid=20076232_f83094c0b2cd89e6e2ee92cdc23eb36c;
это то, что мне нужно.
function SendRequest($url, $method, $data, $headers) {
$context = stream_context_create(array
(
'http' => array(
'method' => $method,
'header' => $headers,
//'content' => http_build_query($data)
'content' => $data
)
));
$response_body = file_get_contents($url, false, $context);
//var_dump($http_response_header);
return array(
'headers' => $http_response_header,
'body' => $response_body
);
}
Функция get_headers()
возвращает массив, но не работает для доступа к нему по номеру индекса. иногда это случайно
Заголовки ответа выглядят так
HostName: *.*.2.111
Set-Cookie: nickname=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/;
Set-Cookie: sid=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/;
Set-Cookie: nickname=%25E4%25B8%2580%25E8%2591%2589%25E9%2580%2599%25E5%25A4%25A9; expires=Mon, 22-Oct-2018 13:44:14 GMT; Max-Age=2592000; path=/
Set-Cookie: sid=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
Set-Cookie: sid=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/;
Set-Cookie: nickname=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/;
Set-Cookie: nickname=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
Set-Cookie: sid=20076232_f83094c0b2cd89e6e2ee92cdc23eb36c; expires=Mon, 22-Oct-2018 13:44:14 GMT; Max-Age=2592000; path=/
Transfer-Encoding: chunked
X-Powered-By: PHP/5.5.38-pl0-gentoo
1 ответ
Вы можете просто отфильтровать вывод get_headers
, используя preg_grep
:
# ↓↓ hex ↓↓
$sids = preg_grep("/sid=([\d_a-f]+);/", $headers);
Затем используйте preg_match
, чтобы извлечь последний действительный идентификатор. Или просто сложите заголовки в один текстовый блок и извлеките первое совпадение (видя, что есть только одно).
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.