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学习教程之第2天
Jun 15 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
php外部执行命令函数用法小结
Oct 11 PHP
php操作access数据库的方法详解
Feb 22 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 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编写PDF文档生成器
2006/10/09 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
php自动加载代码实例详解
2021/02/26 PHP
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
javascript回到顶部特效
2016/07/30 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python打开windows应用程序的实例
2019/06/28 Python
python 的topk算法实例
2020/04/02 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
求职简历自荐信
2013/10/20 职场文书
学生操行评语大全
2014/04/24 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
五四青年节的活动方案
2014/08/20 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
2015年档案室工作总结
2015/05/23 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL