中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP獲取重定向URL的方法是什么

發布時間:2021-12-07 09:35:35 來源:億速云 閱讀:322 作者:iii 欄目:編程語言

本篇內容介紹了“PHP獲取重定向URL的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

PHP獲取重定向URL的方法:1、使用get_headers函數來獲取,語法“get_headers($url, 1)”;2、使用fsockopen()函數來獲取;3、利用curl_init()、curl_setopt()等函數來獲取。

PHP獲取重定向URL的方法是什么

本教程操作環境:windows7系統、PHP7.1版、DELL G3電腦

1、使用get_headers函數
php自帶的get_headers函數可以獲取服務器響應一個HTTP請求所發送的所有標頭,我們可以嘗試用該函數實現。

function get_redirect_url($url){
   $header = get_headers($url, 1);
   if (strpos($header[0], ’301′) !== false || strpos($header[0], ’302′) !== false) {
     if(is_array($header['Location'])) {
       return $header['Location'][count($header['Location'])-1];
     }else{
       return $header['Location'];
        }
   }else {
     return $url;
   }
 }

2、使用fsockopen()內置函數

function get_redirect_url($url){
   $redirect_url = false;
   $url_parts = @parse_url($url);
   if (!$url_parts) return false;
   if (!isset($url_parts['host'])) return false;
   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.1\r\n”;
   $request .= ‘Host: ‘ . $url_parts['host'] . “\r\n”;
   $request .= “Connection: Close\r\n\r\n”;
   fwrite($sock, $request);
   $response = ”;
   while(!feof($sock)) $response .= fread($sock, 8192);
   fclose($sock);
  if (preg_match(‘/^Location: (.+?)$/m’, $response, $matches)){
     return trim($matches[1]);
   } else {
    return false;
  }
}

3、使用cURL函數

function get_redirect_url($url, $referer=”, $timeout = 10) {
   $redirect_url = false;
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_HEADER, TRUE);
   curl_setopt($ch, CURLOPT_NOBODY, TRUE);//不返回請求體內容
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);//允許請求的鏈接跳轉
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
   curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
   curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      ‘Accept: */*’,
      ‘User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)’,
      ‘Connection: Keep-Alive’));
   if ($referer) {
     curl_setopt($ch, CURLOPT_REFERER, $referer);//設置referer
   }
   $content = curl_exec($ch);
   if(!curl_errno($ch)) {
     $redirect_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);//獲取最終請求的url地址
   }
   return $redirect_url;
}


“PHP獲取重定向URL的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桃园市| 满洲里市| 筠连县| 和田市| 百色市| 日照市| 万荣县| 汝城县| 墨玉县| 宁国市| 张掖市| 宁蒗| 晋中市| 韶关市| 望谟县| 平泉县| 宝应县| 金溪县| 和龙市| 永靖县| 宜君县| 龙陵县| 石林| 正宁县| 临潭县| 新丰县| 舒城县| 垣曲县| 梁河县| 开化县| 石景山区| 清镇市| 定远县| 柯坪县| 辉县市| 舟山市| 唐河县| 永寿县| 武清区| 溧水县| 米易县|