
如果向PHP页面传递带有“&”符号的参数怎么办?
例如:有一个文件是123.php,我要向它传递一个参数url=http://www.456.com/?a=a&b=b&c=c如果我这样写123.php?url=http:...
例如:
有一个文件是123.php,我要向它传递一个参数url=http://www.456.com/?a=a&b=b&c=c
如果我这样写123.php?url=http://www.456.com/?a=a&b=b&c=c
则echo $_GET["url"]的结果会是http://www.456.com?a=a
因为有个“&”符号,系统把它判断为了是要传给123.php的参数,于是造成了url值的错误。
请问在上述的情况下,如何把后面的b=b&c=c同前面的网址一起完整地传到url中? 展开
有一个文件是123.php,我要向它传递一个参数url=http://www.456.com/?a=a&b=b&c=c
如果我这样写123.php?url=http://www.456.com/?a=a&b=b&c=c
则echo $_GET["url"]的结果会是http://www.456.com?a=a
因为有个“&”符号,系统把它判断为了是要传给123.php的参数,于是造成了url值的错误。
请问在上述的情况下,如何把后面的b=b&c=c同前面的网址一起完整地传到url中? 展开
5个回答
展开全部
方法1:
使用 urlencode()
$str = 'http://www.456.com/?a=a&b=b&c=c';
$encoded= urlencode($str);
echo $encoded;
接收到之后使用 urldecode()
$decode = urldecode($encoded);
echo "\n<br>";
echo $decode;
方法2:
使用base64_encode() 加密
使用base64_decode() 解密
但是get方法传递的数据有255字节的长度限制,所以这个方法会在数据量大时失效
使用 urlencode()
$str = 'http://www.456.com/?a=a&b=b&c=c';
$encoded= urlencode($str);
echo $encoded;
接收到之后使用 urldecode()
$decode = urldecode($encoded);
echo "\n<br>";
echo $decode;
方法2:
使用base64_encode() 加密
使用base64_decode() 解密
但是get方法传递的数据有255字节的长度限制,所以这个方法会在数据量大时失效
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<a href="123.php?url=<?=rawurlencode("http://www.456.com/?a=a&b=b&c=c")?>">跳转</a>
然后$_GET['url']就是http://www.456.com/?a=a&b=b&c=c,并不需要rawurldecode来解码,HTTP协议会自动解码
理论上,所有链接的参数包括中文都应该用rawurlencode进行编码,就不会出现你所说的问题了
然后$_GET['url']就是http://www.456.com/?a=a&b=b&c=c,并不需要rawurldecode来解码,HTTP协议会自动解码
理论上,所有链接的参数包括中文都应该用rawurlencode进行编码,就不会出现你所说的问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
& 号 可以用 %26 转义
比如传递字符串 r&b
你可以写 ?str=r%26b
OK吗?
比如传递字符串 r&b
你可以写 ?str=r%26b
OK吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码——》传递--》解码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询