我想显示我传递给此页面的编码网址

时间:2015-01-14 07:21:21

标签: php

我想在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>

2 个答案:

答案 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'];