Heim  >  Artikel  >  Backend-Entwicklung  >  用preg_match,截取网址,传递参数不成功怎么处理?

用preg_match,截取网址,传递参数不成功怎么处理?

PHP中文网
PHP中文网Original
2016-06-27 13:18:071031Durchsuche

我想在一个网站调用另一个网站的数据,这样两个网站就可以调用同一个数据,都像  
 
在本地调用的一样。  
 
如:我的网站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=&#39;http://www.b.com/&#39;.$urlname.&#39;/&#39;;  
 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结尾的链接

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn