现在有很多的短网址应用,点击就跳转到缩短之前的网址了,那今天我们就来看一下,PHP如何**短网址跳转之前的网址,其实也很简单,就是用php的get_headers 函数,取得Response Headers,之后慢慢分析就行了。

给出具体实现方法,代码如下:

<?php

$header = get_headers($url, 1);

if (strpos($header[0], '301') || strpos($header[0], '302')) {

if (is_array($header['Location'])) {

return $header['Location'][count($header['Location']) - 1];

} else {

return $header['Location'];

}

} else {

return $url;

}

?>

实例二,代码如下:

<?php

echo get_redirect_url('https://www.bz80.com/');

//输出结果类似的为:https://www.bz80.com/novel/22505.html

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;

}

}

PHP如何获取短网址跳转之前的网址?的更多相关文章

  1. jQuery获取短信验证码+倒计时实现

    jQuery 短信验证码倒计时 <script type="text/javascript" charset="utf-8"> $(function ...

  2. 转载:Android自动化测试- 自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android ...

  3. android自动获取短信验证码

    前言:android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码.主要就是实时获取短信信息.android上获 ...

  4. 基于jquery的-获取短信验证码-倒计时

    在制作短信验证的时候,需要做一个获取短信按钮,点击后显示倒计时, html代码如下: <input class="gain" type="button" ...

  5. PHP获取短信验证码

    PHP如何获取短信验证码?以下是创蓝253短信平台下的PHP接口代码案例:   <?php header("Content-type:text/html; charset=UTF-8& ...

  6. iOS点击获取短信验证码按钮

    概述 iOS点击获取短信验证码按钮, 由于 Demo整体测试运行效果 , 整个修改密码界面都已展现, 并附送正则表达式及修改密码逻辑. 详细 代码下载:http://www.demodashi.com ...

  7. python+pymssql+selenium 获取短信验证码登录(实战练习)

    登录页面输入手机号, 获取短信验证码(验证码有10分钟有效期) 1 连接sql server数据库,获取10分钟之内的有效短信验证码 2 页面输入手机号,并获取验证码.若存在有效验证码则输入验证码,若 ...

  8. android 获取短信验证码倒计时

    android 获取短信验证码倒计时 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWVuZ2xlbGUxMzE0/font/5a6L5L2T/fonts ...

  9. js实现域名判断后跳转到指定网址

    js实现域名判断后跳转到指定网址,也适用于同一虚拟空间放多个网站: <script>       try           {               if(self.locatio ...

  10. 23、vue实现获取短信验证码

    1.html页面: <el-form-item prop="phoneCode" class="pr"> <el-input placehol ...

随机推荐

  1. [Linux]Vmwaer创建CENTOS7虚拟机

    1 前期准备 CENTOS系统镜像 本实验版本: CENTOS 7.9 安装 VMware Workstation 本实验版本: VMware Workstation Pro 15.0 2 VMwar ...

  2. 补五月三号java基础知识

    1.泛型技术可以通过一种类型或方法操纵各种不同类型的对象,同时又提供了编译时的类型安全保证.2.容器(即集合)是以类库形式 提供的多种数据结构,用户在编程时可直接使用3.泛型其实质就是将数据的类型参数 ...

  3. Java设计模式 —— 享元模式

    14 享元模式 14.1 享元模式概述 Flyweight Pattern: 运用共享技术有效地支持大量细粒度对象的复用. 当系统中存在大量相同或相似的对象时,它通过共享技术实现相同或相似的细粒度对象 ...

  4. CLion在工程中添加目录&新文件

    1.将新建文件夹添加到cmake.txt文件里 include_directories(Core/新建文件夹 Core/UserInc Drivers/STM32L4xx_HAL_Driver/Inc ...

  5. day20:正则表达式

    单个字符的匹配 findall(正则表达式,字符串) 把符合正则表达式的字符串存在列表中返回 预定义字符集(8) \d 匹配数字 \D 匹配非数字 \w 匹配数字字母下划线 \W 匹配非数字或字母或下 ...

  6. docker 容器操作、应用部署、mysql,redis,nginx、迁移与备份、Dockerfile

    容器操作 # 启动容器 docker start 容器id # 停止容器 docker stop 容器id # 文件拷贝 先创建文件 mkdir:文件夹 vi vim touch:文件 # 容器的文件 ...

  7. 我的第一个NPM包:panghu-planebattle-esm(胖虎飞机大战)使用说明

    好家伙,我的包终于开发完啦 欢迎使用胖虎的飞机大战包!! 为你的主页添加色彩 这是一个有趣的网页小游戏包,使用canvas和js开发 使用ES6模块化开发 效果图如下:  (觉得图片太sb的可以自己改 ...

  8. Cmder: 懒癌必备!从此告别记事本记命令的日子

    前言 平时开发中遇到这样那样的命令需要记下来,一般做法是这样. 新建记事本 将需要记下的关键命令保存. 每次需要使用时,粘贴复制即可. 好像没什么毛病!直到遇到了 Cmder... 当看到同事分析问题 ...

  9. 用go设计开发一个自己的轻量级登录库/框架吧

    用go设计开发一个自己的轻量级登录库/框架吧 几乎每个项目都会有登录,退出等用户功能,而登录又不单仅仅是登录,我们要考虑很多东西. token该怎么生成?生成什么样的? 是在Cookie存token还 ...

  10. OFFICE-Excel_在只有清单没有定额人材机的情况下筛选工程量的操作

    目的 一个来自东莞的项目需要清单里面所有的电线电缆的量和价,但是由于东莞市的投标清单只需要清单报价即可,没有定额,也就没有人材机,所以就只能依靠清单来剔除量,但是有几个问题,众所周知电线电缆这种材料一 ...