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;
}