首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

用preg_match,截取网址,传递参数不成功,请教下药怎么修改

2013-06-25 
用preg_match,截取网址,传递参数不成功,请问下药如何修改?我想在一个网站调用另一个网站的数据,这样两个网

用preg_match,截取网址,传递参数不成功,请问下药如何修改?
我想在一个网站调用另一个网站的数据,这样两个网站就可以调用同一个数据,都像

在本地调用的一样。

如:我的网站a和网站b

如果我输入:http://www.a.com/x.php/123/456.rar
实际上调用的是:http://www.b.com/123/456.rar(真实的文件存放地址)
下载的时候仍然显示是从www.a.com下载的。

我的x.php是这样的:
<?php
header("content-Type: text/html; charset=Utf-8");
$SERVER=$_SERVER["REQUEST_URI"];
preg_match("/php\/([\s\S]+)\.rar/",$SERVER,$url);
$urlname=$url[1];
$songurl='http://www.b.com/'.$urlname.'/';
header("location:$songurl");
?>

就是通过这段代码将第一个网址中的123传递给第二个网址。
可我上面的代码并没有传递成功:
我输入http://www.a.com/x.php/123/456.rar,显示第二网址是:

http://www.b.com。网址中并没有显示"123".请问下我要做怎么的修改,才能让第二个网址得到传递的参数“123”和“456”的参数。
[解决办法]
1、首先确认下
$_SERVER["REQUEST_URI"] 里面的内容是否是 x.php/123/456.rar
2、正则其实改为
preg_match("/php\/([\s\S]+\.rar)/",$SERVER,$url);
$urlname=$url[1];
$songurl='http://www.b.com/'.$urlname; // 这样才能拼凑成一个http://www.b.com/123/456.rar后缀以rar结尾的链接

热点排行