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" );
|
ログイン後にコピー
上記の関数はバイナリと文字列間の変換をどのように実現しているのでしょうか? ?
------セパレータ------
パックとアンパックについてはすでに知っています。ちなみに、共有させてください:
この例を使用して、私が理解していることについて話しましょう:
パックの使用法:
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('陈');
|
ログイン後にコピー
以上がPHPをバイナリに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。