3

我调用了一个http://site.com/process.php将 url 作为其参数之一的 php 脚本。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);

如何for在发送端(在 url 中)或在接收端(php)对参数进行编码,以便parse_url()理解它只是一个看起来像 url 的参数?

4

2 回答 2

3

在将您的 url 作为get参数包含之前,请使用urlencode

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

当对要在 URL 的查询部分中使用的字符串进行编码时,此函数很方便,作为将变量传递到下一页的便捷方式。


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

于 2011-02-11T12:39:55.347 回答
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

于 2011-02-11T12:41:18.913 回答