解析包含另一个 URL 的 URL 中的 GET 请求参数
这是网址:
http://localhost/test.php?id=http://google.com/?var=234&key=234
我无法获取完整的 $_GET['id'] 或 $_REQUEST['d']。
<?php
print_r($_REQUEST['id']);
//And this is the output http://google.com/?var=234
//the **&key=234** ain't show
?>
Here is the url:
http://localhost/test.php?id=http://google.com/?var=234&key=234
And I can't get the full $_GET['id'] or $_REQUEST['d'].
<?php
print_r($_REQUEST['id']);
//And this is the output http://google.com/?var=234
//the **&key=234** ain't show
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
$my_url 输出:
所以现在您可以使用
$_GET['id']
或$_REQUEST['id']
(解码)获取该值。输出
要获取每个 GET 参数:
$key
是 GET key,$value
是$key
的 GET value。或者您可以使用替代解决方案来获取 GET 参数数组
$get_parameters
与 url 解码的$_GET
相同。$my_url outputs:
So now you can get this value using
$_GET['id']
or$_REQUEST['id']
(decoded).Output
To get every GET parameter:
$key
is GET key and$value
is GET value for$key
.Or you can use alternative solution to get array of GET params
$get_parameters
is same as url decoded$_GET
.创建 url 时使用 urlencode 进行编码
,并在获取时使用 url 解码
While creating url encode them with urlencode
and while fetching decode it wiht urldecode
您可能必须在字符串“http://google.com”上使用 urlencode /?var=234&key=234'
You may have to use urlencode on the string 'http://google.com/?var=234&key=234'
我遇到了类似的问题,最终使用了
parse_url
和parse_str
,只要参数中的 URL 被正确的 url 编码(它绝对应该)就允许您访问实际 URL 的所有参数,以及查询参数中编码 URL 的参数,如下所示:I had a similar problem and ended up using
parse_url
andparse_str
, which as long as the URL in the parameter is correctly url encoded (which it definitely should) allows you to access both all the parameters of the actual URL, as well as the parameters of the encoded URL in the query parameter, like so:你使用不好的性格,比如?和&等等...
将其编辑为新代码
请参阅此链接
你也可以使用urlencode
you use bad character like ? and & and etc ...
edit it to new code
see this links
also you can use urlencode
正确的 php 方法是使用 parse_url()
(来自 php 手册)
该函数解析 URL 并返回一个关联数组,其中包含 URL 中存在的各种组件。
此函数并不是为了验证给定的 URL,它只是将其分解为上面列出的部分。部分 URL 也被接受,parse_url() 会尽力正确解析它们。
The correct php way is to use parse_url()
(from php manual)
This function parses a URL and returns an associative array containing any of the various components of the URL that are present.
This function is not meant to validate the given URL, it only breaks it up into the above listed parts. Partial URLs are also accepted, parse_url() tries its best to parse them correctly.