网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

php怎么保存hex数据的简单介绍

怎样在PHP中把16进制HEX数据转换为2进制数据呢?

十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍2种转换方法:

成都创新互联成都网站建设按需策划设计,是成都网站制作公司,为成都水泥搅拌车提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站营销推广热线:18982081108

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怎样将二进制流存到文件中?

整形转化成 2二进制 可以用  base_convert:

$str = 0x8000;

echo $str2 = base_convert($str, 16, 2);

echo 'br';

echo base_convert($str2, 2, 16);

[code]

字符串 文件等 可以考虑用 pack 和 unpack 转化成二进制

[code=PHP]

$file1 = 'F:/46.gif';           //随便拷一个图片作为测试用

$file2 = 'F:/test.txt';         //生成的二进制流保存在这个文件里

$file3 = 'F:/47.gif';           //由二进制流还原成的文件

$size = filesize($file1);

echo '文件大小为:'.$size;

echo "\nbr转化为二进制 ...";

$content = file_get_contents($file1);

$content = bstr2bin($content);

$fp = fopen($file2, 'w');

fwrite($fp, $content);

fclose($fp);

$size2 = filesize($file2);

echo '转化成二进制后文件大小为:'.$size2;

$content = bin2bstr($content);

$fp = fopen($file3, 'w');

fwrite($fp, $content);

fclose($fp);

function bin2bstr($input)

// Convert a binary expression (e.g., "100111") into a binary-string

{

if (!is_string($input)) return null; // Sanity check

// Pack into a string

$input = str_split($input, 4);

$str = '';

foreach ($input as $v)

{

$str .= base_convert($v, 2, 16);

}

$str =  pack('H*', $str);

return $str;

}

function bstr2bin($input)

// Binary representation of a binary-string

{

if (!is_string($input)) return null; // Sanity check

// Unpack as a hexadecimal string

$value = unpack('H*', $input);

// Output binary representation

$value = str_split($value[1], 1);

$bin = '';

foreach ($value as $v)

{

$b = str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT);

$bin .= $b;

}

return $bin;

}

php 怎么读取一个文件,保存为16进制的数字。

把文件里面的每一个字节的ascii码转成16进制就可以了,如下:

$content = file_get_contents("myfile");

$hex = "";

for($i=0;$i=strlen($content);$i++){

$asc = ord(substr($content,$i,1));

$hex .= dechex($asc);

}

file_put_contents("mynewfile",$hex);

PHP 如何将数据库中存储的十六进制数转换为汉字

//字符串转换成16进制

function str2hex($str){

$hex = '';

for($i=0,$length=mb_strlen($str); $i$length; $i++){

$hex .= dechex(ord($str{$i}));

}

return $hex;

}

//16进制转换成字符串

function hex2str($hex){

$str = '';

$arr = str_split($hex, 2);

foreach($arr as $bit){

$str .= chr(hexdec($bit));

}

return $str;

}

function test(){

//utf8字符测试

$str = '中文';

echo mb_strlen($str);

echo '';

$hex = str2hex($str);

echo $hex;

echo '';

$dec = hex2str($hex);

echo $dec;

echo "";

echo "hr";

//gbk测试

$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');

echo mb_strlen($gbkstr);

echo '';

$hex = str2hex($gbkstr);

echo $hex;

echo '';

$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');

echo $dec;

echo "";

}


分享文章:php怎么保存hex数据的简单介绍
转载源于:http://bjjierui.cn/article/dsipooe.html

其他资讯