将数字编码成字母

时间:2011-01-20 10:51:40

标签: php javascript

让我说我有类似97463

的东西

我想把它编码成字母说kljhs

我目前正在使用php / javascript,但我认为这是一个普遍存在的问题。

以可逆的方式做到这一点最有效的方法是什么?

(可逆的意思是给定数字我可以制作字母代码然后再给出数字代码我可以返回字母)

2 个答案:

答案 0 :(得分:2)

你可以使用strtr函数

$input = '123456';
$output = strtr($input, '0123456789', 'abcdefghij');

要反转,请使用

$input = 'bcdefg';
$output = strtr($input, 'abcdefghij', '0123456789');

http://codepad.org/6hGqJPD6

答案 1 :(得分:0)

您可以使用dechex()将数字编码为十六进制,并使用hexdec()进行反转:

$hex = dechex(97463); // "17cb7"
$dec = hexdec($hex);  // 97463

或者,您可能希望使用base_convert(),从2到36转换为任意基数:

$enc = base_convert(97463, 10, 36);  // "237b"
$dec = base_convert("237b", 36, 10); // 97463