【问题标题】:Convert string to Base-4将字符串转换为 Base-4
【发布时间】:2013-12-05 16:01:33
【问题描述】:

我想将一个 ASCII 字符串转换为 Base4(不是 Base64),然后再转换回来。我能看到如何做到这一点的唯一方法是将字符串转换为二进制然后拆分位

例如:

$str = '帮助'

二进制 = 01101000011001010110110001110000

Base4 = 1220121112301300

在 PHP 中有直接的方法吗?

【问题讨论】:

标签: php type-conversion php-5.4


【解决方案1】:

看看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"
?>

DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-09
    • 2018-05-03
    • 1970-01-01
    • 2018-01-22
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多