php在网址输入参数_php-获取网址参数

标签:php

我有一个简单的问题.我需要从网址获取参数值.

网址是这样的:

http://www.example.com/index.php?someUrl=http://www.example.com/folder/index.htm#>newwnd=false

我需要获取php中someUrl的值.

我试过的

$_GET['someUrl'];

我得到的输出是http://www.example.com/folder/index.htm

输出需要得到:

http://www.example.com/folder/index.htm#>newwnd=false

注意:我无法将#之后的URL分隔为新参数.

我希望我能解决这个问题.

编辑:根据宝贵的反馈意见,我已经在将字符串作为URL参数发送之前对其进行了编码.

我通过javascript函数encodeURIComponent进行了编码

现在,URL如下所示:

http://www.example.com/index.php?someUrl=http%3A%2F%2Fexample.com%folder%2Ftallyhelp.htm%23%253Cid%3D18025%253E%253Enewwnd%3Dfalse

通过urldecode函数在php中解码后,我得到的结果为http://www.example.com/folder/index.htm#\u0026gt;newwnd=false

‘id’从结果中删除.

解决方法:

您的问题是,如果您对页面的请求是这样的:

http://www.example.com/index.php?someUrl=http://www.example.com/folder/index.htm#>newwnd=false

那么#号后面的是锚标记,这意味着后面的不是$_GET的参数,它只是锚标记.因此您需要对#(以及其他一些可能引起更多问题的奇怪字符)进行编码

因此,如果您设法像这样对页面进行请求:

http://www.example.com/index.php?someUrl=http%3A%2F%2Fwww.example.com%2Ffolder%2Findex.htm%23%3Cid%3D18025%3E%3Enewwnd%3Dfalse

那么您将可以使用$_GET [‘someUrl’];获取您想要的值,因为#将被编码(其他字符也是如此)

那么如何提出这样的要求?只需使用urlencode对您的someUrl参数进行编码.

看看它怎么运作

echo urlencode('http://www.example.com/folder/index.htm#>newwnd=false');

因此,在对链接进行编码之后,指向该页面的链接将像这样

my link

如您所见,#将被编码,这将阻止它与请求的URL混淆,并且您将能够通过$_GET [‘someUrl’]获得此字符串.

OP的新编辑的更新:

标签:php

来源: https://codeday.me/bug/20191118/2031136.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值