【问题标题】:How to extract session ID from URL?如何从 URL 中提取会话 ID?
【发布时间】:2011-08-03 04:15:57
【问题描述】:

您好,是否可以使用 php 从 url 获取嵌入式会话 ID?

从根 url,http://www.sbstransit.com.sg/mobileiris/,网站将生成一个在 url 之间的会话 id,并变成类似的东西。

http://www.sbstransit.com.sg/mobileiris/(ts2k1e55xaah50iwodsvjy35)/index.aspx

是否可以使用 php/任何其他方式通过查询根 url 而无需实际进入 url 来检索“ts2k1e55xaah50iwodsvjy35”?

【问题讨论】:

  • 你的意思是:'没有实际进入网址'?是你试图阻止,把自己变成一个电子,你不想真正在互联网上冲浪吗? ( ;) )

标签: php asp.net perl session


【解决方案1】:

如果您使用 wget 获取该页面,您会看到:

...
HTTP request sent, awaiting response... 302 Found
Location: http://www.sbstransit.com.sg/mobileiris/(xidluk550vzs5045l1cxkh55)/index.aspx [following]

这表明它正在执行 302 重定向到包含 ID 的 URL。

您可以编写 Perl(或其他)代码来查找重定向的 URL:

#!/usr/bin/perl
use warnings;
use strict;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;
$ua->requests_redirectable([]); # don't follow any redirects

my $response = $ua->get('http://www.sbstransit.com.sg/mobileiris/');
my $loc = $response->header('Location');

print "redirected to=$loc\n";

【讨论】:

    【解决方案2】:
    <?php
        $url = 'http://www.sbstransit.com.sg/mobileiris/(ts2k1e55xaah50iwodsvjy35)/index.aspx';
        $url_arr = parse_url($url);
        print_r($url_arr);  // debug output
        $tokens = explode('/', $url_arr['path']);
        print_r($tokens);  // debug output
    ?>
    

    输出:

    Array
    (
        [scheme] => http
        [host] => www.sbstransit.com.sg
        [path] => /mobileiris/(ts2k1e55xaah50iwodsvjy35)/index.aspx
    )
    
    Array
    (
        [0] => 
        [1] => mobileiris
        [2] => (ts2k1e55xaah50iwodsvjy35)
        [3] => index.aspx
    )
    

    因此您可以使用$tokens[2] 获取会话ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多