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

推荐:《PHP视频教程》
PHP 字符串 与 二进制相互转换
在网络上查找到了字符串与二进制相互转换的方法(相关问题描述和问题在下列代码中,请耐心查看,谢谢):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | function StrToBin( $str ){
$arr = preg_split('/(?<!^)(?!$)/u', $str );
foreach ( $arr as & $v ){
$temp = unpack('H*', $v );
$v = base_convert ( $temp [1], 16, 2);
unset( $temp );
}
return join(' ', $arr );
}
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" );
|
Salin selepas log masuk
上述的函数是怎样实现二进制和字符串的相互转换的??
-------分隔符-------
关于 pack 和 unpack 我已经清楚了!顺便分享下:
就用这边例子,说说我理解到的部分:
pack用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $bin_number = '这边是二进制数字';
$hex = bin2hex( $bin_number );
$bin_str = pack('H' . strlen ( $hex ) , $hex );
<=>
$dec = bindec ( $bin_number );
$hex = dechex ( $dec );
$bin_str = hex2bin( $hex );
unpack 用法:
$str = unpack('H*' , '陈');
<=>
$str = bin2hex('陈');
|
Salin selepas log masuk
Atas ialah kandungan terperinci php转换为二进制的实现方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!