广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP获取重定向URL的几种方法是什么
  • 236
分享到

PHP获取重定向URL的几种方法是什么

PHP获取重定向URL 2018-05-27 04:05:06 236人浏览 才女
摘要

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑1、使用get_headers函数php自带的get_headers函数可以获取服务器响应一个Http请求所发送的所有标头,我们可以尝试用该函数实现。function

教程操作环境: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;
}

--结束END--

本文标题: PHP获取重定向URL的几种方法是什么

本文链接: https://www.lsjlt.com/news/795.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP获取重定向URL的几种方法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑1、使用get_headers函数php自带的get_headers函数可以获取服务器响应一个HTTP请求所发送的所有标头,我们可以尝试用该函数实现。function ...
    99+
    2018-05-27
    PHP 获取重定向URL
  • PHP获取重定向URL的方法是什么
    本篇内容介绍了“PHP获取重定向URL的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP获取重定向URL的方法:1、使用get...
    99+
    2023-06-21
  • php获取url扩展名的几种方法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php获取url扩展名的方法方法1:<php $url="http://localhost/user/order.php"; function...
    99+
    2014-10-06
    php url 扩展名
  • php域名重定向是什么?PHP重定向的几种方法总结
    PHP域名重定向是一种重要的网络技术,它是将用户访问的不同域名重定向到同一个主域名下的方法。域名重定向可以解决网站SEO优化、品牌宣传以及用户访问等问题,也可以防止恶意域名被滥用的问题。在本文中,我们将介绍PHP域名重定向的具体方法和原理。...
    99+
    2023-05-14
    重定向 php
  • 虚拟主机重定向url的方法是什么
    虚拟主机重定向URL的方法有多种,以下是常用的几种方法:1. 使用.htaccess文件:可以在虚拟主机的根目录下创建一个名为.ht...
    99+
    2023-09-05
    虚拟主机
  • 在PHP中实现重定向功能的几种方法,哪种最优?
    在Web开发中,重定向是一项非常重要的功能。重定向可以使用户在不同的URL之间进行跳转,从而实现更好的用户体验和网站性能优化。在PHP中,实现重定向功能有多种方法,但哪种方法最优呢?本文将详细介绍PHP中实现重定向的几种方法,并分析它们的...
    99+
    2023-09-04
    leetcode 重定向 框架
  • Python获取指定日期是"星期几"的6种方法
    目录weekday()isoweekday()strftime()calendarpendulumPandas在Python进行数据分析时,按照日期进行分组汇总也是被需要的,比如会找...
    99+
    2022-11-13
  • nginx重定向负载的方法是什么
    Nginx可以通过使用proxy_pass指令来实现重定向负载的方法。该指令将客户端的请求转发给后端的多个服务器,可以根据一定的负载...
    99+
    2023-10-26
    nginx
  • vps网站重定向的方法是什么
    VPS网站重定向的方法有以下几种:1. 使用.htaccess文件:在VPS的网站根目录中创建一个名为".htaccess"的文件,...
    99+
    2023-08-20
    vps
  • python重定向输出的方法是什么
    在Python中,可以使用重定向符号 ">" 将输出重定向到文件或其他输出流。具体来说,可以通过以下两种方...
    99+
    2023-05-13
    python重定向 python
  • linux输出重定向的方法是什么
    Linux中的输出重定向有以下几种方式:1. 使用符号">"将命令的标准输出重定向到文件中,如果文件不存在...
    99+
    2023-08-19
    linux
  • java重定向带参数的方法是什么
    在Java中,重定向带参数的方法是使用重定向符号(">")将方法的输出重定向到文件或其他输出流,然后传递参数给方法。例如:```ja...
    99+
    2023-10-10
    java
  • php获取input内容的方法是什么
    在PHP中,可以使用`$_POST`或`$_GET`全局变量来获取input内容。如果表单的`method`属性设置为`POST`,...
    99+
    2023-09-27
    php
  • Bash 中 go 重定向的最佳方法是什么?
    Bash 是一个广泛使用的 Unix shell,它提供了许多强大的特性,包括 I/O 重定向。在 Bash 中,I/O 重定向是一种将输入或输出流从一个文件或命令重定向到另一个文件或命令的方法。在本文中,我们将探讨 Bash 中 go ...
    99+
    2023-10-15
    重定向 bash 存储
  • 伪静态与重定向RewriteRule的方法是什么
    伪静态和重定向RewriteRule是两种不同的技术。伪静态(pseudo-static)是指通过修改URL的方式,将动态生成的网页...
    99+
    2023-09-26
    RewriteRule
  • linux重定向输出日志的方法是什么
    在Linux中,重定向输出日志有以下几种方法:1. 使用">"符号将命令的输出重定向到文件中,例如:`command > file....
    99+
    2023-08-18
    linux
  • php动态获取常量的方法是什么
    在PHP中,常量是指在脚本执行期间不变的值。常量一旦被定义,在脚本的其他任何地方都可以使用。常量的值只能是标量数据类型(布尔值、整数...
    99+
    2023-10-07
    php
  • php获取当前时间的方法是什么
    今天小编给大家分享一下php获取当前时间的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在PHP中,获取时间的一种...
    99+
    2023-07-06
  • 向php传入参数的三种方法是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑向php传入参数的三种方法1、使用$argv or $argc参数接收<php echo "接收到{$argc}个参数"; print_r(...
    99+
    2018-10-18
    php 传入参数
  • 重定向 leetcode 函数:Python 的实现方法是什么?
    重定向是一种将程序的输出从标准输出流(通常是终端)转换到另一个输出流的方法。在Python中,我们可以使用sys模块中的函数来实现重定向。在本文中,我们将讨论如何在Python中实现重定向LeetCode函数。 LeetCode是一个非常流...
    99+
    2023-06-30
    重定向 leetcode 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作