php解析十六进制数据 php 16进制转2进制
PHP 十六进制解密
?php
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了阿坝州免费建站欢迎大家使用!
$str = ‘百度abc’;
$en = javaEn($str);
echo $en;
echo “br”;
echo javaDe($en);
function javaEn($str) {
$output = ”;
$str = iconv(‘GBK’, ‘UTF-16BE’, $str);
for($i = 0; $i strlen($str); $i+=2) {
$code = ord($str{$i}) * 256 + ord($str{$i + 1});
$output .= ‘%u’.str_pad(dechex($code), 4, ’0′, STR_PAD_LEFT);
}
return $output;
}
function javaDe($str) {
preg_match_all(‘/%u0*([1-9a-e][0-9a-z]*)/’, $str, $arr);
$return = ”;
foreach($arr[1] as $v) {
if(strlen($v) 2) {
$s = chr(hexdec(substr($v, 0, 2))).chr(hexdec(substr($v, 2)));
$return .= iconv(‘UTF-16BE’, ‘GBK’, $s);
} else {
$return .= chr(hexdec($v));
}
}
return $return;
}
?
php(workerman)如何读取十六进制数据,所见即所得的?
换不同版本的浏览器。。一边用 IE 一边用火狐之类的。。另外,如果你用 SESSION 制作的身份验证。IE 都可以双开。。不过要分别从桌面IE图标点进。不能用新建标签页。新建标签页算是同一浏览器会话。
怎样在PHP中把16进制HEX数据转换为2进制数据呢?
十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍2种转换方法:
1.hex2bin函数可以将十六进制字符串转换为二进制字符串,详细用法如下:
hex2bin — 转换十六进制字符串为二进制字符串
string hex2bin(string $data)
转换十六进制字符串为二进制字符串。
参数:
data:十六进制表示的数据
返回值:
返回给定数据的二进制表示 或者在失败时返回 FALSE。
异常:
如果输入的十六进制字符串是奇数长数或者无效的十六进制字符串将会抛出E_WARNING 级别的错误。
示例:
$hex = hex2bin("6578616d706c65206865782064617461");
echo $hex;//example hex data(其中16进制代表的是ascii码)
2.base_convert是真正意义上的进制转换函数
base_convert — 在任意进制之间转换数字
string base_convert( string $number, int $frombase, int $tobase)
返回一字符串,包含 number以 tobase 进制的表示。number 本身的进制由frombase指定。frombase 和 tobase 都只能在2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。
参数:
number:要转换的数字
frombase:原始进制
tobase:转换后的进制
示例:
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);//101000110111001100110100
PHP里,16进制格式字符串,转换成具体值的方法
还有 hexdec 这个函数number hexdec ( string $hex_string )
Example #1 hexdec() 例子
?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"
var_dump(hexdec("that")); // print "int(10)"
var_dump(hexdec("a0")); // print "int(160)"
?
网页标题:php解析十六进制数据 php 16进制转2进制
当前网址:http://cdiso.cn/article/ddcoege.html