PHP自定義多進制的方法
更新時間:2016年11月03日 10:41:03 投稿:jingxian
下面小編就為大家?guī)硪黄狿HP自定義多進制的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
如下所示:
/**
* 自定義多進制,根據(jù)設(shè)置的多進制字符串獲取十進制對應(yīng)的多進制
* @param $str 自定義的多進制字符串
* @param $num 十進制數(shù)字
* @return $xbin 對應(yīng)的多進制數(shù)字
*/
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|"
以上就是小編為大家?guī)淼腜HP自定義多進制的方法全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
PHP date()格式MySQL中插入datetime方法
在本篇文章里小編給大家分享了關(guān)于PHP date()格式MySQL中插入datetime方法,有需要的朋友們學習下。2019-01-01
利用yahoo匯率接口實現(xiàn)實時匯率轉(zhuǎn)換示例 匯率轉(zhuǎn)換器
這篇文章主要介紹了利用yahoo匯率接口實現(xiàn)實時匯率轉(zhuǎn)換示例,大家參考使用吧2014-01-01

