При парсинге материала с помощью библиотеки CURL, бывает что нужно получить данные по адресу вида https://domain.ru/?p=234 но при этом ссылка является недействительной из за редиректа на сайте, который превращает ссылку в https://domain.ru/category/post-in-blog.html или даже возможен редирект на другой домен.
Данный код позволит узнать окончательный вид ссылки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php $url = "https://domain.ru/?p=234"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $a = curl_exec($ch); curl_close( $ch ); $headers = explode("\n",$a); $redir = $url; $j = count($headers); for($i = 0; $i < $j; $i++){ if(strpos($headers[$i],"Location:") !== false){ $redir = trim(str_replace("Location:","",$headers[$i])); break; } } echo $redir; |