在PHP中获取$ _GET值加上('+')字符

时间:2015-07-03 23:22:45

标签: php get

我有这个链接:

www.mysite.com?a=abc+dfg

我会在php中获取值:$ _GET [“a”]。

但是,通过这种方式,我得到字符串“abc dfg”,没有“+”。

如何才能获得全部价值?

4 个答案:

答案 0 :(得分:1)

也许你应该在创建URL之前以某种方式进行编码。在php手册网站上看一下这篇文章:

URLEncode Function

PHPCode

echo urlencode("asd+bbb"); //asd%2Bbbb

和URLDecode以正确获取结果:

URLDecode Function

echo urldecode("asd%2Bbbb"); //asd+bbb

答案 1 :(得分:0)

这个空间不是一个友好的网址。 PHP的urlencode()函数将空格转换为+

尝试使用urldecode()

echo urldecode($_GET["a"]);

http://php.net/manual/en/function.urldecode.php

答案 2 :(得分:0)

之前您将其传递到您的网站

www.mysite.com?a=abc+dfg

您必须添加"www.mysite.com?" . "a=" . urlencode($value);

之后,地址网址上的数据应该是

www.mysite.com?a=asd%2Bbbb

当你获得

您可以使用urldecode($_GET["a"]);

致电

返回应为abc+dfg

答案 3 :(得分:0)

这个问题很老,但是我想与大多数答案区分开。

如果您具有abc + dfg,则需要对其执行urlencode(abc + dfg)函数。

然后您将能够使用$ _GET('a')获得加号。

如果执行urldecode(),它将为您提供abc dfg,不带+号。

您可以根据以下代码验证我的答案:

该文件名为test.php:

 <?php

$question = "abc+dfg";

$ques_enc = urlencode($question);
echo "url encode";
echo "<br>";

echo "<a href='test.php?ques=$ques_enc'>
View question encode</a> ";
echo "<br>";
echo "<br>";

echo "no url encode";
echo "<br>";

echo "<a href='test.php?ques=$question'>
View question</a> ";
echo "<br>";
echo "<br>";


if(isset($_GET['ques'])){
  echo "no url decode";
  echo "<br>";

$ques = $_GET['ques'];
echo $ques;
echo "<br>";
echo "<br>";

}

if(isset($_GET['ques'])){

echo "url decode";

$ques = urldecode($_GET['ques']);
echo "<br>";

echo $ques;

}

点击了带有urlencode()的图片: enter image description here

未单击urlencode()的图像: enter image description here

从上面可以看到,如果您编码而不解码,则会得到加号(+)。 如果您不编码也不解码,就不会获得加号(+)