parse_url() 参数之一为 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()
理解它只是一个参数这恰好看起来像一个网址?
I call a php script http://site.com/process.php
that takes a url as one of its parameters. for=
http://site.com/process.php?for=http://www.anotherwebsite.com
I then do this and try to parse_url()
but parse_url() gives a parse error.
$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com
parse_url($uri);
How can I encode the for
parameter either on the sending side (in the url) or on the receiving side (php) so that parse_url()
understands that it's just a parameter that happens to look like a url?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在将您的网址包含为
get
参数之前,请使用 <代码>urlencode要反转
urlencode
的结果,请使用urldecode
。正如 mario 在下面的评论中指出的那样,
$_GET
参数已经进行了 url 解码。Before including your url as a
get
parameter, useurlencode
To reverse the result of
urlencode
, useurldecode
. As mario pointed out in a comment below,$_GET
parameters are already urldecoded.好吧,首先你必须使用
urlencode()
for= 参数,然后在process.php
中,你可以简单地执行以下功能:
http://php.net/manual/en/function.urlencode.php
http://php.net/manual/en/function.urldecode.php
Well, first you must
urlencode()
thefor=
parameter, then inprocess.php
, you can simply doHere are the functions:
http://php.net/manual/en/function.urlencode.php
http://php.net/manual/en/function.urldecode.php