PHP获取短链接跳转后的真实地址和响应头信息的方法


Posted in PHP onJuly 25, 2014

获取到一个短连接,需要将短连接转换成真实的网址,通过查资料,发现 PHP 提供了一个函数 get_headers() ,可以完成这个任务,先把 头部信息获取到,然后再分析跳转地址即可:

$url = 'http://t.cn/h5mwx';

$headers = get_headers($url, TRUE);
print_r($headers);
//输出跳转到的网址

echo $headers['Location'];

附完整数组:

Array

(

    [0] => HTTP/1.1 302 Moved Temporarily

    [Location] => http://www.baidu.com

    [Content-Type] => Array

        (

            [0] => text/html;charset=UTF-8

            [1] => text/html;charset=utf-8

        )
    [Server] => Array

        (

            [0] => weibo

            [1] => BWS/1.0

        )
    [Content-Length] => Array

        (

            [0] => 203

            [1] => 16424

        )
    [Date] => Array

        (

            [0] => Thu, 12 Dec 2013 10:42:25 GMT

            [1] => Thu, 12 Dec 2013 10:42:25 GMT

        )
    [X-Varnish] => 2893360335

    [Age] => 0

    [Via] => 1.1 varnish

    [Connection] => Array

        (

            [0] => close

            [1] => Close

        )

)

附:get_headers函数官方文档

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头

说明

array get_headers ( string $url [, int $format = 0 ] )

get_headers() 返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。

参数

url:目标 URL。

format:如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。

返回值

返回包含有服务器响应一个 HTTP 请求所发送标头的索引或关联数组,如果失败则返回 FALSE。

使用例子:

<?php

$url = 'http://www.example.com';
print_r(get_headers($url));
print_r(get_headers($url, 1));

?>

以上例程的输出类似于:
Array

(

    [0] => HTTP/1.1 200 OK

    [1] => Date: Sat, 29 May 2004 12:28:13 GMT

    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)

    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT

    [4] => ETag: "3f80f-1b6-3e1cb03b"

    [5] => Accept-Ranges: bytes

    [6] => Content-Length: 438

    [7] => Connection: close

    [8] => Content-Type: text/html

)
Array

(

    [0] => HTTP/1.1 200 OK

    [Date] => Sat, 29 May 2004 12:28:14 GMT

    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)

    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT

    [ETag] => "3f80f-1b6-3e1cb03b"

    [Accept-Ranges] => bytes

    [Content-Length] => 438

    [Connection] => close

    [Content-Type] => text/html

)
PHP 相关文章推荐
UCenter Home二次开发指南
May 28 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
如何用PHP实现插入排序?
Apr 10 PHP
深入理解php的MySQL连接类
Jun 07 PHP
php使用exec shell命令注入的方法讲解
Nov 12 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 #PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 #PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 #PHP
php实现与erlang的二进制通讯实例解析
Jul 23 #PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 #PHP
Yii使用CLinkPager分页实例详解
Jul 23 #PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 #PHP
You might like
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
PHP里的单例类写法实例
2015/06/25 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
flask中的wtforms使用方法
2018/07/21 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
实例代码讲解Python 线程池
2020/08/24 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
英国女装网上商店:I Saw It First
2018/10/18 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
介绍一下Java中标识符的命名规则
2014/02/03 面试题
中学教师自我鉴定
2014/02/07 职场文书
网络书店创业计划书
2014/02/07 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js