PHP. CURL. Как получить удаленные cookie?


Задача по получению списка всех удаленных кук достаточно нетипична и встречается редко. Но, при удаленной авторизации, например, эта задача может стать критичной и вызвать много проблем.
Но, на самом деле, задача решается достаточно просто.
Приведенный ниже код возвращает список всех cookie с удаленного сервера:

function getGemoteCookies( $url ){
	// адрес для  удаленного подключения
	$ch = curl_init( $url );
	// результат вернуть в переменную, а не на экран
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	// вернуть заголовки
	curl_setopt($ch, CURLOPT_HEADER, 1);
	// выполнить запрос
	$result = curl_exec($ch);
	// получаем cookies, исходя из блока Set-Cookie заголовков
	preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);
	$cookies = array();
	foreach($matches[1] as $item) {
	    parse_str($item, $cookie);
	    $cookies = array_merge($cookies, $cookie);
	}
	return cookies ;
}

Таким образом, список удаленных cookie можно получить просто вызвав метод. Например, так:

getGemoteCookies('http://onfor.info');

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *