如何从字母中获取反向数字代码?

时间:2016-12-15 20:14:04

标签: php encoding decode encode decoding

我有将数字编码为字符串的函数,如:

  • 0 - >一个
  • 1 - > B'/ LI>
  • 2 - > ç
  • ...
  • 45 - > [R

功能:

public static function encode($number) {
    $out = "";
    $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";

    while ($number > 53) {
        $key = $number % 54;
        $number = floor($number / 54) - 1;
        $out = $codes{$key}.$out;
    }

    return $codes{$number}.$out;
}

如何制作将字母转换回数字的反向功能?

2 个答案:

答案 0 :(得分:2)

您可以将字符串视为数组并使用该位置,因此编码更容易:

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return $codes[$number];

您可能需要进行一些错误检查,例如:

return isset($codes[$number]) ? $codes[$number] : false;

然后解码,找到该位置的字母:

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
return strpos($codes, $letter);
如果找不到,

strpos()将为您返回false

答案 1 :(得分:0)

  

易于使用strpos功能

public static function decode($letter) {

    $letter = $letter[0];

    $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";

    $pos = strpos($codes,$letter);

    return $pos;

}