首页->正文

获取页面返回的跳转地址

2011-11-23 -Web开发 标签: php

用户登录的接口返回值默认是一个跳转地址,之后再通过地址跳转实现登录功能(不明白为什么要搞这么复杂)。现在由于要给合作网站提供登录功能,对方不方便跳转。因此考虑通过服务器端获取跳转地址,再把登录返回值直接提供给合作方。

首先了解下页面的跳转方式,根据http协议我们知道,页面的跳转可以通过在头部中设置“Location: /url/”方式来实现,所以我们从接口返回的头部信息中,可用得到要跳转的地址以及其中附带的参数等,方法如下:
<?php
//假设我们请求的登录域名为test,请求的登录页面为http://test/http/302.php
$fp = fsockopen("test", 80, $errno, $errstr, 30);

if (!$fp) {
    echo "$errstr ($errno)\n";
} else {
     $out = "HEAD /http/302.php HTTP/1.1\r\n";
     $out .= "Host: test\r\n";
     $out .= "Connection: Close\r\n\r\n";
     fwrite($fp, $out);
     $content = '';
     while (!feof($fp)) {
          $content .= fgets($fp, 128);
     }
     fclose($fp);
}
/*
302.php的内容:
<?php
header("Location: /a.php?t=1");
exit;
*/
preg_match('/Location: (.*)/', $content, $m);
print_r($m);
//返回如下信息
Array
(
    [0] => Location: /a.php?t=1
    [1] => /a.php?t=1
)

关于HTTP中HEAD方法的定义
http://www.360doc.com/content/08/0613/09/41237_1330035.shtml

下一篇 常用的一些开发相关软件汇总

上一篇 特殊字符及转义上应注意的问题

相关文章

Ubuntu下编译安装PHP

使用curl_multi_init并发请求

php增加Last-Modified为何无效

用xhprof分析php代码

正则修饰符m和s用法

文章分类

开发小提示

  • 1:Mongodb中通过db.yourCollectionName. dataSize()查看某个文档的大小
  • 2:linux下用reset命令恢复查看二进制文件导致的命令行乱码
  • 3:查看MySQL表的索引情况show index from tableName
  • 更多...

交流

  • wangnow(a)126.com