окончательный URL в перенаправлениях - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу получить окончательный URL при перенаправлении URL.У меня есть эта функция:

    function get_redirect_final_host_url($url){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // follow redirects
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // set referer on redirect
    curl_exec($ch);
    $target = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
$website_host_url = str_ireplace('www.', '', parse_url($target)['host']);
return $website_host_url;
}

, но она не работает на всех ссылках, некоторые ссылки:

https://www.goldpoll.com/out.php?p=28017
https://investlister.com/go/lid/68/

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Доброе время;Вам необходимо получить доступ к функции curl для тех, у кого https протестировать ее:

function get_redirect_final_host_url($url){
    $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_NOBODY, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // follow redirects
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // set referer on redirect
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // get access ssl
        curl_exec($ch);
        $target = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
    $website_host_url = str_ireplace('www.', '', parse_url($target)['host']);
    return $website_host_url;
}
0 голосов
/ 20 ноября 2018
<?php
$target = 'https://investlister.com/go/lid/68/';
$website_host_url = str_ireplace('www.', '', parse_url($target)['host']);

echo $website_host_url; // investlister.com

Это работает точно так, как вы ожидаете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...