public static function asciiArray()

in lang/php/lib/AvroDebug.php [148:230]


    public static function asciiArray($str, $format = 'ctrl')
    {
        if (!in_array($format, ['ctrl', 'hex', 'dec'])) {
            throw new AvroException('Unrecognized format specifier');
        }

        $ctrl_chars = array(
            'NUL',
            'SOH',
            'STX',
            'ETX',
            'EOT',
            'ENQ',
            'ACK',
            'BEL',
            'BS',
            'HT',
            'LF',
            'VT',
            'FF',
            'CR',
            'SO',
            'SI',
            'DLE',
            'DC1',
            'DC2',
            'DC3',
            'DC4',
            'NAK',
            'SYN',
            'ETB',
            'CAN',
            'EM',
            'SUB',
            'ESC',
            'FS',
            'GS',
            'RS',
            'US'
        );
        $x = array();
        foreach (str_split($str) as $b) {
            $db = ord($b);
            if ($db < 32) {
                switch ($format) {
                    case 'ctrl':
                        $x[] = str_pad($ctrl_chars[$db], 3, ' ', STR_PAD_LEFT);
                        break;
                    case 'hex':
                        $x[] = sprintf("x%02X", $db);
                        break;
                    case 'dec':
                        $x[] = str_pad($db, 3, '0', STR_PAD_LEFT);
                        break;
                }
            } else {
                if ($db < 127) {
                    $x[] = "  $b";
                } else {
                    if ($db == 127) {
                        switch ($format) {
                            case 'ctrl':
                                $x[] = 'DEL';
                                break;
                            case 'hex':
                                $x[] = sprintf("x%02X", $db);
                                break;
                            case 'dec':
                                $x[] = str_pad($db, 3, '0', STR_PAD_LEFT);
                                break;
                        }
                    } else {
                        if ('hex' === $format) {
                            $x[] = sprintf("x%02X", $db);
                        } else {
                            $x[] = str_pad($db, 3, '0', STR_PAD_LEFT);
                        }
                    }
                }
            }
        }
        return $x;
    }