我想将ASCII字符串转换为Base4(而不是Base64),然后将其转换回来。我能看到如何做到这一点的唯一方法是将字符串转换为二进制,然后拆分位
例如:
$ str ='help'
二进制= 01101000011001010110110001110000
Base4 = 1220121112301300
在PHP中有直接的方法吗?
答案 0 :(得分:0)
看看base_convert
:
<?php
class Base4 {
public static function to($string) {
$base4 = '';
for ($i = 0, $strlen = strlen($string); $i < $strlen; $i++) {
$base4 .= base_convert(ord($string[$i]), 10, 4);
}
return $base4;
}
public static function from($base4) {
$string = '';
for ($i = 0, $strlen = strlen($base4); $i < $strlen; $i += 4) {
$string .= chr(base_convert(substr($base4, $i, 4), 4, 10));
}
return $string;
}
}
$str = 'help';
$base4 = Base4::to( $str );
var_dump($base4); //string(16) "1220121112301300"
$str = Base4::from( $base4 );
var_dump($str); //string(4) "help"
?>