Данные с cURL

Печать RSS
427

Автор
Чатланин
0
Привет мастерам , подскажите как мне с запроса curl:
 $ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://adress.ru/search");
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$forma);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); curl_exec($ch);
curl_close($ch); 

который выдаёт вот такой header:
 HTTP/1.1 302 Moved Temporarily Server: nginx Date: Mon, 24 Aug 2015 10:11:38 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 0 Connection: keep-alive Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: Imperial=cc6f20153e3c027027292103db69b88f; path=/ Location: http://addres.ru/search/378305
вытащить Location: , а именно этот адрес: http://addres.ru/search/378305
I

Пришелец
0
Автор
Чатланин
0
Подскажите как мне header который выдаёт curl загнать в переменную .

Оранжевые штаны
0
3. LETGAM,
<?php

$ch=curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://adress.ru/search"); 
curl_setopt($ch,CURLOPT_HEADER,true); 
curl_setopt($ch,CURLOPT_POST,true); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$forma);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); $result = curl_exec($ch);
curl_close($ch); 

$var = http_parse_headers($result);
var_dump($var);

Если правильно понял
Изменил: Dmitry Kokorin (24.08.2015 / 14:19)
Автор
Чатланин
0
4. DimmoS, Не работает твой вариант , выводит только header который отдаёт curl и всё .

Добавлено через 02:14 сек.
2. iNeeXT, это могло бы и подойти но пока мне не ясно как применить .

Оранжевые штаны
0
5. LETGAM, как ты результат вообще выводишь? Я в твоем коде вообще вывода не вижу
Автор
Чатланин
0
6. DimmoS, curl отдаёт и выводит результат , но мне всё равно как его выводить , мне нужно редирект получить .
M

Пацак
0
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1)
Изменил: mix (24.08.2015 / 15:35)
Автор
Чатланин
0
Пробовал curl_getinfo , получил только http://adress.ru/search , а редирект не получается получить .

Добавлено через 01:52 сек.
8. miх, и что это мне даст ?
Изменил: Сергей (24.08.2015 / 15:35)
I

Пришелец
0
<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://byvlad.ru/mp3/index.php?query=beatles&sort=0&action=query&form=true");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
$forma = array();
curl_setopt($ch, CURLOPT_POSTFIELDS, $forma);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$response = curl_exec($ch);

curl_close($ch);

list($headers_raw, $resp) = explode("\r\n\r\n", $response, 2);

foreach (explode("\n", $headers_raw) as $header) {
	if (stripos($header, 'Location:') !== false) {
		$address = str_replace('Location: ', null, $header);
	}
}

echo $address;

Сделал без функции http_parse_headers, так как она идет с модулем http, если он есть, то используй её.
Изменил: iNeeXT (24.08.2015 / 15:40)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск