您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

php如何实现转化为二进制字符串

2024/4/26 7:07:44发布6次查看
php实现字符串转化为二进制字符串的方法:首先创建一个php示例文件;然后通过“function strtobin($str){...}”方法将字符串转换成二进制即可。
本文操作环境:windows7系统、php7.1版,dell g3电脑
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如何实现转化为二进制字符串的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录