php擷取301跳轉URL簡單一實例

來源:互聯網
上載者:User

 這篇文章主要介紹了php擷取301跳轉URL簡單一實例,有需要的朋友可以參考一下

 代碼如下:/** * get_redirect_url() * Gets the address that the provided URL redirects to, * or FALSE if there's no redirect.  * * @param string $url * @return string */function get_redirect_url($url){    $redirect_url = null;      $url_parts = @parse_url($url);    if (!$url_parts) return false;    if (!isset($url_parts['host'])) return false; //can't process relative URLs    if (!isset($url_parts['path'])) $url_parts['path'] = '/';     $sock = fsockopen($url_parts['host'], (isset($url_parts['port']) ? (int)$url_parts['port'] : 80), $errno, $errstr, 30);    if (!$sock) return false;     $request = "HEAD " . $url_parts['path'] . (isset($url_parts['query']) ? '?'.$url_parts['query'] : '') . " HTTP/1.1rn";     $request .= 'Host: ' . $url_parts['host'] . "rn";     $request .= "Connection: Closernrn";     fwrite($sock, $request);    $response = '';    while(!feof($sock)) $response .= fread($sock, 8192);    fclose($sock);    if (preg_match('/^Location: (.+?)$/m', $response, $matches)){        if ( substr($matches[1], 0, 1) == "/" )            return $url_parts['scheme'] . "://" . $url_parts['host'] . trim($matches[1]);        else            return trim($matches[1]);     } else {        return false;    } }/** * get_all_redirects() * Follows and collects all redirects, in order, for the given URL.  * * @param string $url * @return array */function get_all_redirects($url){    $redirects = array();    while ($newurl = get_redirect_url($url)){        if (in_array($newurl, $redirects)){            break;        }        $redirects[] = $newurl;        $url = $newurl;    }    return $redirects;}   php實現用socket擷取301跳轉地址,可以提取跳轉過程中的url   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.