我想在echo的帮助下打印已编码的url,例如我发送这样的变量:
"http://www.indiandeal.in/test.php?go=http://www.facebook.com/indiandeal"
如果我传递任何变量但没有编码的url字符串,它工作正常。普通网址字符串工作正常。
我不想对网址进行编码。 我想要这个工作
http://www.indiandeal.in/test.php?go=http%3A%2F%2Fwww.facebook.com%2Findiandeal&123=234
这应该将网址打印为
www facebook com indiandeal& 123 = 234
但它只显示
http www facebook com / indiandeal
这是我的代码:
<!DOCTYPE html>
<html>
<body>
<?php
$txt1 = $_GET["go"];
echo $txt1;
?>
</body>
</html>
答案 0 :(得分:2)
如果您传递已编码的网址,则会自动 decoded
警告
superglobals $ _GET和$ _REQUEST已被解码。 在$ _GET或$ _REQUEST中的元素上使用urldecode()可以 意外和危险的结果。
如果您仍希望看到它已编码,可以使用 urlencode()
根据您的评论进行修改。
如果要保存名为go
的请求变量的编码版本,可以执行
echo urlencode($_GET['go']); // this encodes it again
//echo urlencode("http://www.facebook.com/indiandeal");
<强>输出强>
http%3A%2F%2Fwww.facebook.com%2Findiandeal
答案 1 :(得分:1)
试试这个会起作用:
查询字符串可能包含多个key-value
对。当有多个键值对时,它们通常由&符号(&)
分隔。
输入:
http://www.indiandeal.in/test.php?go=http%3A%2F%2Fwww.facebook.com%2Findiandeal&123=234
此处,$_GET["go"]
仅为您提供与go
相关联的值。要访问整个查询字符串,您必须使用此字符:
QUERY_STRING服务器变量可以检索原始的,未处理的查询字符串:
echo $_SERVER['QUERY_STRING'];