我试图在url 中发送查询字符串
例如:url : localhost/myfile.php?number=8777,+9822,+9883
在myfile.php中,当我给echo查询字符串时:
echo $_REQUEST['number'];
输出:
8777,9822,9883
但预期的输出是:
8777,+9822,+9883
我怎样才能显示+符号。
更新:
实际上,这个url是来自android/ios设备应用程序的web请求
im在php、中提供Web服务
因此android/ios开发人员正在发送带有包含+ sign
的查询字符串的请求
那么我该如何处理这种情况呢?
+ is reserved. PHP is correct in translating an unencoded + sign to a space.
为此,您可以使用urlencode((urldecode((。+必须在PHP中作为编码值提交:%2B
然后您应该使用urlencode()
函数来创建那个url:
<?php
var_dump($_GET['number']);
echo 'http://localhost/myfile.php?number='.urlencode('8777,+9822,+9883');
编辑
如果这是你收到的url,并且不能用它做任何事情,你可以使用例如:
echo substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],'=')+1);
你会得到
8777,+9822,+9883
对不起,我不知道你想做什么,但这里有一个建议
//其中base64_encode('8777,+9822,+983'(=ODc3NywrOTgyMiwrOTg4Mw
localhost/myfile.php?number=ODc3NywrOTgyMiwrOTg4Mw
//在myfile.php 上
echo base64_decode($_REQUEST['number']);
//这将输出->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>';
}
?>
希望这能有所帮助……:(