对于大于36个碱基的PHP,是否有一个碱基转换器?
php只有36个基本转换器,我需要更多,我找到了代码,但它在js中,有人能帮我翻译成php吗 谢谢对于大于36个碱基的PHP,是否有一个碱基转换器?,php,javascript,converter,base,Php,Javascript,Converter,Base,php只有36个基本转换器,我需要更多,我找到了代码,但它在js中,有人能帮我翻译成php吗 谢谢 function baseConverter (number,ob,nb) { // Created 1997 by Brian Risk. http://brianrisk.com //number = number.toUpperCase(); var list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWX
function baseConverter (number,ob,nb) {
// Created 1997 by Brian Risk. http://brianrisk.com
//number = number.toUpperCase();
var list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var dec = 0;
if(number=="0" || number=="" || number==0){
number="0";
}else{
for (var i = 0; i <= number.length; i++) {
dec += (list.indexOf(number.charAt(i))) * (Math.pow(ob , (number.length - i - 1)));
}
number = "";
var magnitude = Math.floor((Math.log(dec))/(Math.log(nb)));
for (var i = magnitude; i >= 0; i--) {
var amount = Math.floor(dec/Math.pow(nb,i));
number = number + list.charAt(amount);
dec -= amount*(Math.pow(nb,i));
}
}
return number;
}
功能基本转换器(编号、ob、nb){
//由Brian Risk于1997年创建。http://brianrisk.com
//number=number.toUpperCase();
var list=“0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”;
var-dec=0;
如果(数字==“0”| |数字==”“| |数字==0){
number=“0”;
}否则{
对于(变量i=0;i=0;i--){
var金额=数学下限(12月/数学功率(nb,i));
数字=数字+列表字符(金额);
十二月-=金额*(计算功率(nb,i));
}
}
返回号码;
}
函数基转换器($number、$ob、$nb){
$list=“0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz”;
$dec=0;
$number=(字符串)$number;
if(空($number)){
$number=“0”;
}
其他的
{
$number_len=strlen($number);
对于($i=0;$i=0;$i--)
{
$amount=最低限额($dec/pow($nb,$i));
$number=$number.$list[$amount];
$dec-=$amount*(pow($nb,$i));
}
}
返回$number;
}
var_转储(基本转换器(“789”,10,45));
将返回字符串(2)“HO”
注意,请阅读常见问题解答。这个问题不适合StackOverflow。如果您将问题更改为类似的“是否有一个base converter,用于大于36的base,用于PHP?”,您可能也会得到更好的答案。如果您只是在寻找base 64编码器:@dtanders感谢链接,但是那些base64编码器使字符串更长,我的程序只处理编码为自定义base62的base10数字,使url变得更短,更易于使用process@Pindatjuh嗯。。。这不仅仅是基础转换器,我还需要那些定制的alphabeth..:DI实际上是在试图找到一个JS转换器。谢谢
function baseConverter ($number,$ob,$nb) {
$list = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$dec = 0;
$number = (string)$number;
if(empty($number)){
$number="0";
}
else
{
$number_len = strlen($number);
for ($i=0; $i<$number_len; $i++)
{
$dec += strpos($list, $number[$i])*(pow($ob, ($number_len-$i-1)));
}
$number = '';
$magnitude = floor(log($dec)/log($nb));
for($i=$magnitude; $i>=0; $i--)
{
$amount = floor($dec/pow($nb, $i));
$number = $number.$list[$amount];
$dec-= $amount*(pow($nb, $i));
}
}
return $number;
}
var_dump( baseConverter("789", 10, 45));
will return string(2) "HO"