91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

三亚市| 镇沅| 谷城县| 轮台县| 纳雍县| 丹凤县| 镇远县| 灵宝市| 南雄市| 金山区| 青海省| 和平区| 当阳市| 高碑店市| 石首市| 左贡县| 高安市| 甘孜| 翁牛特旗| 景德镇市| 蓝山县| 天峨县| 潮州市| 华蓥市| 南江县| 章丘市| 东至县| 缙云县| 保定市| 若羌县| 阳山县| 岳西县| 区。| 内江市| 肇源县| 淮南市| 崇信县| 大冶市| 兰州市| 新兴县| 安图县|