我试图在网址
中发送查询字符串代表:url : localhost/myfile.php?number=8777,+9822,+9883
:
echo $_REQUEST['number'];
输出:
8777,9822,9883
但预期的输出是:
8777,+9822,+9883
我怎样才能显示+符号。
更新:
实际上该url是来自android / ios设备应用程序的web请求,
我在php中提供webservice,
所以android / ios开发人员正在使用包含+ sign
那我怎么处理这种情况呢?
答案 0 :(得分:2)
+ is reserved. PHP is correct in translating an unencoded + sign to a space.
您可以使用urlencode()urldecode()。 +必须在PHP中以编码值提交:%2B
答案 1 :(得分:0)
然后,您应该使用urlencode()
函数来创建该网址:
<?php
var_dump($_GET['number']);
echo 'http://localhost/myfile.php?number='.urlencode('8777,+9822,+9883');
修改强>
如果这是您收到的网址,并且您无法执行任何操作,例如:
echo substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],'=')+1);
你会得到
8777,+ 9822,+ 9883
答案 2 :(得分:0)
抱歉,我不知道你要做什么,但这是一个建议
//其中base64_encode('8777,+ 9822,+ 9883')= ODc3NywrOTgyMiwrOTg4Mw
本地主机/ myfile.php?数= ODc3NywrOTgyMiwrOTg4Mw
// on myfile.php
echo base64_decode($_REQUEST['number']);
//这将输出 - &gt; 8777,9822 +,+ 9883
更新--------------------------- 如果您别无选择,可以使用此
<?php
// get URL query string
$params = $_SERVER['QUERY_STRING'];
// if you have $params = www.mydomain.com/myfile.php?number=9988,+9876,+8768
$temp = explode('=', $params);
echo $temp[1] .'<hr>';
// if you have $params = www.mydomain.com/myfile.php?number=9988,+9876,+8768&number2=123,+456,+789
$params2 = $_SERVER['QUERY_STRING'];
$temp3 = explode('&', $params2);
foreach($temp3 as $val){
$temp4 = explode('=', $val);
// # // $GET = $temp4[0]; // if you need the GET VALUES
$VALUE = $temp4[1];
echo $VALUE .'<br>';
}
?>
希望这有助于.... :)