我有這樣一個環節:在page.php文件頁面符號不能讓PHP打印
http://domain.com/page.php?product=brown+rice
然後我拿到的產品:
$product = $_GET['product'];
<?php echo $product; ?>
但只有打印:糙米沒有+
如何獲得get方法中的+?
我有這樣一個環節:在page.php文件頁面符號不能讓PHP打印
http://domain.com/page.php?product=brown+rice
然後我拿到的產品:
$product = $_GET['product'];
<?php echo $product; ?>
但只有打印:糙米沒有+
如何獲得get方法中的+?
首先,我將與任何不同的符號取代它之前,我通過它的鏈接:
例如:
http://domain.com/page.php?product='.str_replace("+","_",$obj->items).'"
然後在頁面中。php我會回到原來的符號:
$product= str_replace("_","+",$_GET['product']);
此方法將只會取代所有在url中有符號的產品。當你得到它時,它會檢查產品的名稱是否有符號。
我希望你明白,它可以幫助
取代所有空白!太棒了!非常感謝你! – alisa 2014-12-08 10:55:55
請參考下面的網址,它已經answerd在計算器,
PHP - Plus sign with GET query
如果你讀了bug報告你的全部會看到對RFC 2396的引用。其中指出+是保留。 PHP將未編碼的+符號翻譯成空格是正確的。
將密文返回給用戶時,可以使用urlencode()密文。因此,當用戶提交密文解密時,你可以urldecode()它。如果它通過GET字符串進入,PHP會自動爲您執行此操作。
底線:的+必須提交給PHP作爲編碼值:%2B
首先URL編碼,然後使用
<?php
$_GET['url'] = '123abc+456';
echo $_GET['url'];
echo "<br/>";
echo $_GET['url'] = urlencode($_GET['url']);
echo "<br/>";
echo str_replace('%2B', '+', $_GET['url']);
?>
解碼210
$_GET
的變量認爲是+
作爲空間。
URL編碼增加%2B
對空間。
然後用字符串替換進行解碼。
可能幫助
echo isset($_GET['product']) ? urlencode($_GET['product']) : 'Product Not Found';
它用+ – alisa 2014-12-08 07:53:59
你需要在產品GET參數 – Aditya 2014-12-08 07:20:15