2012-12-29 193 views
4

我需要一種方式在PHP編碼電子郵件地址只使用a-zA-Z0-9所以基本上編碼沒有任何特殊字符,但然後能夠解碼它回到原來的。PHP編碼電子郵件地址

例子:

[email protected] => ENCODE => n6bvJjdh7w6QbdVB373483ydbKus7Qx 
n6bvJjdh7w6QbdVB373483ydbKus7Qx => DECODE => [email protected] 

這甚至可能嗎?

+0

看看這只是爲了好玩:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html –

+0

爲什麼你需要這樣做? rawurlencode()不工作嗎? –

+0

'rawurlencode()'和'urlencode()'不起作用,因爲它們不會逃避''。我不能有句號。 – Justin

回答

7

你可以做一個網絡安全base64編碼:

// encode 
$email_encoded = rtrim(strtr(base64_encode($email), '+/', '-_'), '='); 

// decode 
$email_decoded = base64_decode(strtr($email_encoded, '-_', '+/')); 

它轉換+/ from base64字母表中的更無害-_。編碼步驟還會在需要時刪除尾隨的=字符。

+0

用'+ /'和'-_'做的strstr究竟是做什麼的?謝謝。 – Justin

+0

@Justin它將每個'+'轉換成'-',每個'/'轉換爲'_'。 –

+0

哪裏有過+和/從base64編碼返回雖然?我認爲它只返回'a-zA-Z0-9 ='。謝謝。 – Justin

相關問題