2014-07-18 60 views
0

我試着在URL顯示+符號

發送查詢字符串,例如:url : localhost/myfile.php?number=8777,+9822,+9883

在myfile.php當我給呼應的查詢字符串:

echo $_REQUEST['number']; 

輸出:

8777,9822,9883 

但預期輸出是:

8777,+9822,+9883 

我怎樣才能顯示+標誌也。

UPDATE:

實際上該URL是從Android/IOS設備的應用程序的網絡請求,在PHP

即時提供的web服務,

所以機器人/ IOS開發者使用一個發送請求查詢字符串包含+ sign

那麼我該如何處理這種情況?

+0

使用進行urlencode函數來發送這樣的價值 –

+0

URL編碼您的網址.'localhost/myfile.php?numbe r = 8777,%2B9822,%2B9883' – bansi

+0

您無法理解HTTP。打開並回家。 –

回答

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
+ is reserved. PHP is correct in translating an unencoded + sign to a space. 

您可以使用進行urlencode()urldecode()這一點。 的+必須在PHP中提交的編碼值:%2B

+0

請檢查我的更新問題 – fedrick

0

對不起,我不知道你想做什麼,但這裏有一個建議

//其中BASE64_ENCODE('8777,+ 9822 ,+ 9883' )= ODc3NywrOTgyMiwrOTg4Mw

本地主機/ myfile.php?數= ODc3NywrOTgyMiwrOTg4Mw //上MYFILE

。PHP

echo base64_decode($_REQUEST['number']);

//這會輸出 - > 8777,+ 9822,+ 9883

UPDATE --------------------- ------ 如果你沒有其他選擇,你可以使用這個

<?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>'; 
} 
?> 

希望這有助於.... :)

+0

基本上是什麼機器人:從android/ios應用程序,即時獲取webrequest:如www.mydomain.com/myfile。 php?number = 9988,+ 9876,+ 8768,所以我需要得到所有的數字,包括+符號 – fedrick