Данные с cURL

1. Сергей (24.08.2015 / 13:23)
Привет мастерам , подскажите как мне с запроса 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

2. iNeeXT (24.08.2015 / 13:42)
http://php.net/manual/ru/function.http-parse-headers.php

3. Сергей (24.08.2015 / 14:06)
Подскажите как мне header который выдаёт curl загнать в переменную .

4. Dmitry Kokorin (24.08.2015 / 14:17)
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);

Если правильно понял

5. Сергей (24.08.2015 / 14:37)
4. DimmoS, Не работает твой вариант , выводит только header который отдаёт curl и всё .

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

6. Dmitry Kokorin (24.08.2015 / 15:07)
5. LETGAM, как ты результат вообще выводишь? Я в твоем коде вообще вывода не вижу

7. Сергей (24.08.2015 / 15:32)
6. DimmoS, curl отдаёт и выводит результат , но мне всё равно как его выводить , мне нужно редирект получить .

8. mix (24.08.2015 / 15:34)
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1)

9. Сергей (24.08.2015 / 15:34)
Пробовал curl_getinfo , получил только http://adress.ru/search , а редирект не получается получить .

Добавлено через 01:52 сек.
8. miх, и что это мне даст ?

10. iNeeXT (24.08.2015 / 15:38)
<?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, если он есть, то используй её.

11. Tegos (24.08.2015 / 15:58)
Привет. smile
насколько понял, то что-то не то тебе советуют.
Установи просто CURLOPT_FOLLOWLOCATION в TRUE.

12. Сергей (24.08.2015 / 16:21)
Всё зделал и проверил работает , кого интересует вот код:
 $ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://addres.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,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_exec($ch);
$header=curl_getinfo($ch);
curl_close($ch);
echo $header['url']; 

Добавлено через 00:55 сек.
10. iNeeXT, сейчас ваш код проверю , для интереса .

13. Сергей (24.08.2015 / 16:36)
10. iNeeXT, возможно где то в вашем коде ошибка , потому что выводит это http://addres.ru/error , а должно вывести что то вроде этого http://addres.ru/go/12345 (цыфры изменяются) . Так как рабочий вариант есть считаю вопрос исчерпан , тему крою .

URL: https://visavi.net/topics/42585