4

我需要一种方法PHP来对电子邮件地址进行编码,仅使用a-zA-Z0-9基本上没有任何特殊字符的编码,但随后能够将其解码回原始地址。

例子:

 john+doe@mydomain.com => ENCODE => n6bvJjdh7w6QbdVB373483ydbKus7Qx
 n6bvJjdh7w6QbdVB373483ydbKus7Qx => DECODE => john+doe@mydomain.com

这甚至可能吗?

4

2 回答 2

7

您可以进行网络安全 base64 编码:

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

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

它将base64 字母表中的+and转换为更无害的and 。编码步骤还会在需要时删除尾随字符。/-_=

于 2012-12-29T23:54:36.737 回答
1

如果允许等号,则可以使用base64_encode()andbase64_decode()

另一种选择是bin2hex()hex2bin()

于 2012-12-29T23:49:28.367 回答