如何从URL中提取会话ID?

时间:2011-04-11 15:29:07

标签: php asp.net perl session

您好可以使用php从URL获取嵌入式会话ID吗?

从根网址http://www.sbstransit.com.sg/mobileiris/开始,网站会生成会话ID,该会话ID位于网址之间,并且会变成类似的内容。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

表示它正在对包含ID的URL进行302重定向。

您可以编写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";

答案 1 :(得分:0)

<?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