PHP自定义多进制的方法

所属分类: 网络编程 / PHP编程 阅读数: 169
收藏 0 赞 0 分享

如下所示:

/**
 * 自定义多进制,根据设置的多进制字符串获取十进制对应的多进制
 * @param $str 自定义的多进制字符串
 * @param $num 十进制数字
 * @return $xbin 对应的多进制数字
 */
function xbin($str, $num){
  $num = floatval($num);
  $x = strlen($str);
  $arr = str_split($str);
  $digit = fmod($num, $x);
  $xbin = isset($arr[$digit]) ? $arr[$digit] : null;
  $pre_digit = floor($num / $x);
  if($pre_digit >= 1){
    $pre_digit = xbin($str, $pre_digit);
    return $pre_digit.$xbin;
  }
  return $xbin;
}

// 测试8进制
$str = '01234567';
$a = xbin($str, 9);
$b = decoct(9);
dump($a); // string(2) "11"
dump($b); // string(2) "11"

// 测试16进制
$str = '0123456789abcdef';
$a = xbin($str, 31);
$b = dechex(31);
dump($a); // string(2) "1f"
dump($b); // string(2) "1f"

// 自定义30进制
$str = '0123456789abcdefghijklmnopqrst';
$a = xbin($str, 59);
dump($a); // string(2) "1t"

// 自定义92进制
$str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~!@#$%^&*()-=[];\',./{}:"<>?\|';
$a = xbin($str, 183);
dump($a); // string(2) "1|"

以上就是小编为大家带来的PHP自定义多进制的方法全部内容了,希望大家多多支持脚本之家~

更多精彩内容其他人还在看

PHP Ajax实现页面无刷新发表评论

PHP Ajax实现页面无刷新发表评论
收藏 0 赞 0 分享

windows下PHP APACHE MYSQ完整配置

windows下PHP APACHE MYSQ完整配置
收藏 0 赞 0 分享

Ajax PHP分页演示

Ajax PHP分页演示
收藏 0 赞 0 分享

Smarty结合Ajax实现无刷新留言本实例

Smarty结合Ajax实现无刷新留言本实例
收藏 0 赞 0 分享

PHP 和 MySQL 开发的 8 个技巧

PHP 和 MySQL 开发的 8 个技巧
收藏 0 赞 0 分享

一个用php实现的获取URL信息的类

一个用php实现的获取URL信息的类
收藏 0 赞 0 分享

一个PHP操作Access类(PHP+ODBC+Access)

一个PHP操作Access类(PHP+ODBC+Access)
收藏 0 赞 0 分享

php你的验证码安全码?

php你的验证码安全码?
收藏 0 赞 0 分享

PHP无限分类的类

这段时间在写一个部门权限系统,需要用到无限分类技术,找了很多关于分类的代码.逐个收藏起来
收藏 0 赞 0 分享

phpwind中的数据库操作类

phpwind中的数据库操作类
收藏 0 赞 0 分享
查看更多