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 相关文章推荐
同时提取多条新闻中的文本一例
Oct 09 PHP
ADODB结合SMARTY使用~超级强
Nov 25 PHP
php 文章采集正则代码
Dec 28 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
Jul 03 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
php多文件上传下载示例分享
Feb 20 PHP
PHP header()函数常用方法总结
Apr 11 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
php的命名空间与自动加载实现方法
Aug 25 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 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 strtotime函数详解
2009/12/18 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Python编程中time模块的一些关键用法解析
2016/01/19 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Python模拟用户登录验证
2017/09/11 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
对pandas中apply函数的用法详解
2018/04/10 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
python excel多行合并的方法
2020/12/09 Python
python的setattr函数实例用法
2020/12/16 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
机电一体化职业规划书
2014/01/07 职场文书
招商专员岗位职责
2014/02/08 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
sql注入报错之注入原理实例解析
2022/06/10 MySQL