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 相关文章推荐
使用PHP模拟HTTP认证
Oct 09 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
PHPThumb图片处理实例
May 03 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
Jun 10 PHP
php中删除、清空session的方式总结
Oct 09 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP微信H5支付开发实例
Jul 25 PHP
PHP实现的日历功能示例
Sep 01 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 PHP
PHP反射实际应用示例
Apr 03 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
无线电广播的开始
2002/01/30 无线电
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
javascript 写类方式之八
2009/07/05 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
python字符串循环左移
2019/03/08 Python
Python3 元组tuple入门基础
2020/02/09 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
python Zmail模块简介与使用示例
2020/12/19 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
国际贸易专业自荐信
2014/06/10 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
企业投资意向书
2015/05/09 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers
MySQL事务的隔离级别详情
2022/07/15 MySQL