Как перенаправить ссылку url с php из bit.ly

Я пытаюсь получить URL-ссылки с этими переадресациями bit.ly. Я пытался открыть bit.ly ссылки с file_get_contents но он уже получает контент с перенаправленного сайта, но как получить его url?

Solutions Collecting From Web of "Как перенаправить ссылку url с php из bit.ly"

Я не знал о bit.ly API, вот как это сделать:

 $context = array ( 'http' => array ( 'method' => 'GET', 'max_redirects' => 1, ), ); @file_get_contents('http://bit.ly/cmUTtb', null, stream_context_create($context)); echo 'Redirect to: ' . str_replace('Location: ', '', $http_response_header[6]); 

Вы можете запросить API-интерфейс bit.ly ( документация ) для длинного URL-адреса. Вам понадобится ваше имя пользователя и ключ API (который можно найти на странице своей учетной записи ).

 $endpoint = 'http://api.bit.ly/v3/expand?'; $params = array( 'shortUrl' => 'http://bit.ly/aUmUDq', 'login' => 'your_bitly_username', 'apiKey' => 'your_api_key', 'format' => 'txt' ); $api_url = $endpoint . http_build_query($params); echo file_get_contents($api_url); 

Используйте curl , который не будет следовать за перенаправлениями по умолчанию.

см. https://stackoverflow.com/a/41680608/7426396

Я реализовал, чтобы получить каждую строку текстового файла с одним сокращенным URL-адресом на строку, соответствующий URL-адрес перенаправления:

 <?php // input: textfile with one bitly shortened url per line $plain_urls = file_get_contents('in.txt'); $bitly_urls = explode("\r\n", $plain_urls); // output: where should we write $w_out = fopen("out.csv", "a+") or die("Unable to open file!"); foreach($bitly_urls as $bitly_url) { $c = curl_init($bitly_url); curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'); curl_setopt($c, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($c, CURLOPT_HEADER, 1); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20); // curl_setopt($c, CURLOPT_PROXY, 'localhost:9150'); // curl_setopt($c, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); $r = curl_exec($c); // get the redirect url: $redirect_url = curl_getinfo($c)['redirect_url']; // write output as csv $out = '"'.$bitly_url.'";"'.$redirect_url.'"'."\n"; fwrite($w_out, $out); } fclose($w_out); 

Получайте удовольствие и наслаждайтесь! PW