php 打印出字符串的16进制

 代码如下 复制代码

<?php
/*
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<=0xFF; $i++)
    {
      $from .= chr($i);
      $to .= ($i >= 0x20 && $i <= 0x7E) ? chr($i) : $pad;
    }
  }
 
  $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]
*/
?>

 

时间: 2024-09-23 08:08:03

php 打印出字符串的16进制的相关文章

[HOWTO]ORACLE中如何实现ASC字符串和16进制串互相转换

oracle|转换|字符串 ORACLE中如何实现ASC字符串和16进制串互相转换 欢迎大家同我交流:enhydraboy   enhydra_boy@tom.com 欢迎转载,请保留本声明,谢谢! 下面是笔者以前回答csdn论坛上问题的总结,希望对大家有用. ASC字符串==>16进制串 create or replace function AscToHex(sIn IN varchar2)RETURN varchar2ISsTmp varchar2(4000);i integer;BEGIN

c语言-如何将数字字符串转为16进制字符串?

问题描述 如何将数字字符串转为16进制字符串? 请教一个示例:如何将数字字符串转为16进制字符串?字符串:char str[20]="1234567890123456";将中间的"789012"转换为16进制的"0C0A14":最后str=""1234560C0A143456"" 如果有描述不清的地方,请指出.多谢! 解决方案 你先用字符串截取到 比如strstr等,""789012&q

vb.net 字符串转16进制

问题描述 字符串1:sd13A你好字符串2:2014年08月23日星期六8:59:23把字符串转16进制---------求代码!再把16进制转回中文---求代码!额,就是求互转代码!新手求助! 解决方案 解决方案二:"字符串转16进制"这个说法缺乏必要的逻辑性.只有一个整数才能表现为2进制.8进制.10进制.16进制之类的概念.字符串是一个高级的概念,那么你的逻辑就应该稍微高级一点.比如说"unicode编码的byte[]数组"."byte[]数组的ba

关于byte 进制 float String 编码 16进制字符串转16进制byte的问题

首先 只有String才与编码有关: byte与其他类型转换时,要注意大端点还是小端点, 编码: Ascii Unicode gbk utf-8等等  byte 占 8位 可由两个16进制数(0xff)组成,一个16进制占4位,也可由8位二进制数组成等等,与编码没关系,但可用2进制表示,也可由其他进制表示. "0xff"这样的16进制字符串转换成16进制byte String[] s="0X0C 0X03 0X00 0X04 0X00 0X02 0X84 0XD7"

16进制字符串-C# 16进制的字符串转byte数组

问题描述 C# 16进制的字符串转byte数组 如字符串:0xFF 0x01 0x01 0x02 0xEE 转换成byte byte[0]=0xFF; byte[1]=0x01

java 如何把十进制字符串转换为16进制字符串

问题描述 Stringstr1="07101311"要转换成16进制的070A110B也就是07--0710--0A13--1111--0B 解决方案 解决方案二:两两个的截取,然后将截取后的字符转为int,调用Integer.toHexString转为16进制,循环拼接到一起解决方案三:楼上说了.截取调用方法转换.解决方案四:07--0710--0A13--11这个应该是D11--0BStringstr="07101311";StringBuffersb=newS

js实现字符串的16进制编码不加密

  字符串转十六进制编码: 代码如下: str="http://www.qq.com"; len=str.length; arr=[]; for(var i=0;i arr.push(str.charCodeAt(i).toString(16)); } console.log("x"+arr.join("x")); 十六进制编码转字符串: 代码如下: str="x68x74x74x70x3ax2fx2fx77x77x77x2ex71x7

js实现字符串的16进制编码不加密_javascript技巧

今天看到群里有人提问关于十六进制编码的问题,所以使用JS写了个小程序转换一下,记住:这只是编码,不是加密! 字符串转十六进制编码: 复制代码 代码如下: str="http://www.qq.com"; len=str.length; arr=[]; for(var i=0;i<len;i++){ arr.push(str.charCodeAt(i).toString(16)); } console.log("\\x"+arr.join("\\x&q

字符串转为16进制

字符串 string StrToHex(string str){string strTemp = ""; if(str="") return "";byte[] bTemp = System.Text.Encoding.Default.GetBytes(str); for(int i = 0;i<bTemp.Length;i++){strTemp += bTemp[i].ToString("X");}return str