2016-09-28 79 views
1

在這裏我有一個值有一個白色的空間。我通過rawurlencode()的價值。但是當我想在數據庫查詢使用sql中的值,我不能逃脫"%20"這是增加,而不是空白從原始URL編碼的值中獲取空白符號?

<a href =<?php echo "www.example.com?val =".rawurlencode("al zami") ;>click</a> 

在後端我使用$_GET['val'] ..但它有類似"al%20zami"。如何逃脫他們$_GET可變

+1

的編碼被用於減少所述字符設置爲禁止的字符。作爲請求值的一部分,轉義序列會自動轉回。此外,還有像[rawurldecode()](https://secure.php.net/manual/en/function.rawurldecode.php)這樣的東西。 – syck

+0

您在URL的'='符號之前有一個空格。你爲什麼需要一個? – Xenos

回答

1

使用下面的代碼。這裏urldecode解碼給定字符串中的任何%##編碼。

echo urldecode($_GET['val']); 

Ref: php Manual

0

你搞亂了代碼。修復無用的空格,在屬性周圍添加引號,然後關閉PHP標記。

<a href="<?php echo "?val=".rawurlencode("al zami"); ?>">click</a> 
<?php echo $_GET['val']; ?> 
1

我懷疑你是一個有點困惑在這裏您的術語,因爲%20已經逃走了。你似乎在問,據我瞭解你的問題,它是如何去做的。

對於這個問題PHP manual for rawurlencode()持有答案。請記住閱讀整個頁面,並仔細閱讀。

這就是說。您在$_GET陣列中獲得URL轉義值的事實似乎表明您的代碼中可能存在一些其他問題。
正常情況下,服務器在從客戶端接收到轉義值時會自動轉換這些值,因此在大多數情況下,手動轉義這些轉義值絕不是必需的。

因此,請發佈您的代碼的完整示例,它從頭至尾突出顯示了問題。如果你這樣做,我們可以幫助你找到並解決真正的問題。不只是症狀。

+0

其實我正在使用codeigniter。它不會自動忽略數據。我不知道爲什麼?所以,我不得不想出一個簡單的例子來表達我的問題 –

+0

在涉及任何框架或任何其他PHP代碼之前發生了無法解決的問題。所以這不應該對結果有任何影響。然而,它可能會做的是雙重轉義你的輸出,所以它看起來並沒有在收到時解開它。 – ChristianF