Heim >php教程 >php手册 >php 打印出字符串的16进制

php 打印出字符串的16进制

WBOY
WBOYOriginal
2016-06-13 09:47:301147Durchsuche

下面这个函数是一个php 打印出字符串的16进制实例,这里面的核心函数就是 chr获取二进制然后再进行转成16进制数。

 代码如下 复制代码

/*
php 打印出字符串的16进制数据
*/
function hex_dump($data, $newline="n")
{
  static $from = '';
  static $to = '';
 
  static $width = 16; # number of bytes per line
 
  static $pad = '.'; # padding for non-visible characters
 
  if ($from==='')
  {
    for ($i=0; $i     {
      $from .= chr($i);
      $to .= ($i >= 0x20 && $i     }
  }
 
  $hex = str_split(bin2hex($data), $width*2);
  $chars = str_split(strtr($data, $from, $to), $width);
 
  $offset = 0;
  foreach ($hex as $i => $line)
  {
    echo sprintf('%6X',$offset).' : '.implode(' ', str_split($line,2)) . ' [' . $chars[$i] . ']' . $newline;
    $offset += $width;
  }
}
 
$info="this is a testx00x99hex_dump";
print_r(hex_dump($info));
/*
输出结果:
 
0 : 74 68 69 73 20 69 73 20 61 20 74 65 73 74 00 99 [this is a test..]
 
10 : 68 65 78 5f 64 75 6d 70 [hex_dump]
*/
?>


 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn