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;
}
$str = '01234567';
$a = xbin($str, 9);
$b = decoct(9);
dump($a);
dump($b);
$str = '0123456789abcdef';
$a = xbin($str, 31);
$b = dechex(31);
dump($a);
dump($b);
$str = '0123456789abcdefghijklmnopqrst';
$a = xbin($str, 59);
dump($a);
$str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~!@#$%^&*()-=[];\',./{}:"<>?\|';
$a = xbin($str, 183);
dump($a);