使用php从查询字符串url中显示+符号


display + sign from the query string url using php

我试图在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>';
}
?>

希望这能有所帮助……:(