我有这个链接:
www.mysite.com?a=abc+dfg
我会在php中获取值:$ _GET [“a”]。
但是,通过这种方式,我得到字符串“abc dfg”,没有“+”。
如何才能获得全部价值?
答案 0 :(得分:1)
也许你应该在创建URL之前以某种方式进行编码。在php手册网站上看一下这篇文章:
PHPCode
echo urlencode("asd+bbb"); //asd%2Bbbb
和URLDecode以正确获取结果:
echo urldecode("asd%2Bbbb"); //asd+bbb
答案 1 :(得分:0)
这个空间不是一个友好的网址。 PHP的urlencode()函数将空格转换为+
尝试使用urldecode()
echo urldecode($_GET["a"]);
答案 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;
}
从上面可以看到,如果您编码而不解码,则会得到加号(+)。 如果您不编码也不解码,就不会获得加号(+)