最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php转换为二进制的实现方法

来源:动视网 责编:小采 时间:2020-11-02 18:25:43
文档

php转换为二进制的实现方法

php转换为二进制的实现方法:php转换为二进制的实现方法:首先创建一个PHP示例文件;然后定义一个StrToBin方法;接着通过unpack方法解析字符串;最后通过base_convert函数转换为二进制即可。推荐:《PHP视频教程》PHP 字符串 与 二进制相互转换在网络上查找到了字符串与二进制相互转
推荐度:
导读php转换为二进制的实现方法:php转换为二进制的实现方法:首先创建一个PHP示例文件;然后定义一个StrToBin方法;接着通过unpack方法解析字符串;最后通过base_convert函数转换为二进制即可。推荐:《PHP视频教程》PHP 字符串 与 二进制相互转换在网络上查找到了字符串与二进制相互转


php转换为二进制的实现方法:首先创建一个PHP示例文件;然后定义一个StrToBin方法;接着通过unpack方法解析字符串;最后通过“base_convert”函数转换为二进制即可。

推荐:《PHP视频教程》

PHP 字符串 与 二进制相互转换

在网络上查找到了字符串与二进制相互转换的方法(相关问题描述和问题在下列代码中,请耐心查看,谢谢):

/** 
* 将字符串转换成二进制 
* @param type $str 
* @return type 
* php 中显示的字符串是多少进制的??
* 例如:$str = '你好'; // 这边的 '你好' 是什么进制数据(我知道他是字符串!)??
*/ 
function StrToBin($str){ 
 //1.列出每个字符
 // 这边的分割正则也不理解
 // (?<!^) 后瞻消极断言
 // (?!$) 前瞻消极断言
 // 看意思好像说的是:不以^开头(但是这边 ^ 又没有被转义...),不以 $ 结尾(同上)
 // 然后得到的记过就是字符串一个个被分割成了数组(郁闷)
 // 求解释
 $arr = preg_split('/(?<!^)(?!$)/u', $str); 
 //2.unpack字符 
 foreach($arr as &$v){
 /**
 * unpack:将二进制字符串解包(英语原文:Unpack data from binary string)
 * H: 英语描述原文:Hex string, high nibble first 
 * 这段代码做了什么??
 */
 $temp = unpack('H*', $v); // 这边被解析出来的字符串为什么是 16进制的??
 $v = base_convert($temp[1], 16, 2); 
 unset($temp); 
 } 
 
 return join(' ',$arr); 
} 
 
/** 
* 讲二进制转换成字符串 
* @param type $str 
* @return type 
*/ 
function BinToStr($str){ 
 $arr = explode(' ', $str); 
 foreach($arr as &$v){ 
 // 他做了什么??
 $v = pack("H".strlen(base_convert($v, 2, 16)), base_convert($v, 2, 16)); 
 } 
 
 return join('', $arr); 
} 
 
echo StrToBin("php二次开发:www.php2.cc");; 
echo '<br/>'; 
echo BinToStr("1110000 1101000 1110000 111001001011101010001100 111001101010110010100001 111001011011110010000000 111001011000111110010001 111011111011110010011010 1110111 1110111 1110111 101110 1110000 1101000 1110000 110010 101110 1100011 1100011");

上述的函数是怎样实现二进制和字符串的相互转换的??

-------分隔符-------

关于 pack 和 unpack 我已经清楚了!顺便分享下:

就用这边例子,说说我理解到的部分:

pack用法:

// 二进制数字 => 二进制字符串
$bin_number = '这边是二进制数字';
$hex = bin2hex($bin_number );
// 由于指定了 H(16进制,高位在前),所以第二个参数需要使 16 进制字字符串
// strlen($hex) 指定打包多少个 16 进制字符串
// 也可以使用 * 来自动识别
// 结果就是:二进制字符串了
$bin_str = pack('H' . strlen($hex) , $hex);
<=>
$dec = bindec($bin_number);
$hex = dechex($dec);
$bin_str = hex2bin($hex);
unpack 用法:
// 转换作用:2进制字符串 => 16进制字符串
$str = unpack('H*' , '陈'); 
<=>
$str = bin2hex('陈');

文档

php转换为二进制的实现方法

php转换为二进制的实现方法:php转换为二进制的实现方法:首先创建一个PHP示例文件;然后定义一个StrToBin方法;接着通过unpack方法解析字符串;最后通过base_convert函数转换为二进制即可。推荐:《PHP视频教程》PHP 字符串 与 二进制相互转换在网络上查找到了字符串与二进制相互转
推荐度:
标签: 转换 方法 的方法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top