parse_url()问题,其中一个参数是url

时间:2011-02-11 12:37:50

标签: php url uri parse-url

我调用一个php脚本http://site.com/process.php,它将url作为其参数之一。 for=

http://site.com/process.php?for=http://www.anotherwebsite.com

然后我这样做并尝试parse_url()但是parse_url()给出了一个解析错误。

$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com
parse_url($uri);

如何在发送方(在url中)或在接收方(php)上编码for参数,以便parse_url()知道它只是一个恰好看起来像的参数一个网址?

2 个答案:

答案 0 :(得分:3)

在将您的网址列为get参数之前,请使用urlencode

$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com');
  

此功能很方便   编码要在a中使用的字符串   查询URL的一部分,方便   将变量传递给下一个的方法   页。


要反转urlencode的结果,请使用urldecode。正如马里奥在下面的评论中指出的那样,$_GET参数已被urldecoded。

答案 1 :(得分:2)

好吧,首先你必须urlencode() for=参数,然后在process.php,你可以做到

$url = $_GET["for"];
$url = urldecode($url); // http://www.anotherwebsite.com

以下是功能: http://php.net/manual/en/function.urlencode.php http://php.net/manual/en/function.urldecode.php