我用javascript變量是這樣的:什麼解碼PHP中的「email%2540yahoo.com」值?
var email = encodeURIComponent($('input[name=\'email\']').val())
email
顯然被編碼並在發送給服務器產生這樣的:email%2540yahoo.com
在PHP什麼功能將正確解碼此值?
我用javascript變量是這樣的:什麼解碼PHP中的「email%2540yahoo.com」值?
var email = encodeURIComponent($('input[name=\'email\']').val())
email
顯然被編碼並在發送給服務器產生這樣的:email%2540yahoo.com
在PHP什麼功能將正確解碼此值?
在PHP什麼功能將正確解碼此值試過嗎?
你不需要解碼任何東西。 $_GET["email"]
和$_POST["email"]
將工作得很好。 encodeURIComponent
函數用於對url進行正確的url編碼,以避免導致URL無效。如果您有一個有效的網址,PHP將成功讀取參數。
echo urldecode(urldecode('email%2540yahoo.com')); // [email protected]
嘗試urldecode(<value_to_decode_here>);
爲@正確的URL編碼爲%40。
當使用重寫規則重定向一個URL(例如來自電子郵件的編碼@字符)時,它將被重寫爲%2540(%編碼爲%25)。如果您不斷重寫/重定向,則每次都會用%25替換%,最後以%25252540(或更多25,您得到圖片)結束。
例如點擊此:
http://example.org?email=info%40example.org
會產生重寫之後和使用重寫規則重定向:
https://example.org?info%2540example.org
在瀏覽器地址欄中
,不正確地轉化爲信息@例子.org在PHP中。
[urldecode](http://php.net/manual/en/function.urldecode.php)(x2) – Sjoerd 2012-01-12 08:41:15
該郵件被urlencoded兩次 – im3r3k 2016-02-02 20:16:06