PHP でバイナリデータを 16 進数表現に変換する方法

PHPz
リリース: 2024-03-19 09:18:01
転載
550 人が閲覧しました

phpエディタStrawberryでは、バイナリデータを16進数表現に変換する方法を紹介します。 PHP では、bin2hex() 関数を使用してバイナリ データを 16 進数表現に変換できます。この関数は各バイトを 2 つの 16 進文字に変換し、それによってバイナリ データを 16 進表現に変換します。この方法は、暗号化やエンコードなどのシナリオで非常に役立ち、データの変換と処理を容易にします。

PHP バイナリ データを 16 進表現に変換します

######導入######

場合によっては、バイナリ データを 16 進数表現に変換する必要があります。 php は、この変換を実現するためのさまざまなメソッドを提供します。

bin2hex()関数

最も簡単な方法は、bin2hex() 関数を使用することです。この関数は、バイナリ

string

を同等の 16 進数に変換します。 $binaryData = "01001000"; $hexData = bin2hex($binaryData); 出力結果:

40
ログイン後にコピー
ログイン後にコピー

pack() 関数
ログイン後にコピー
ログイン後にコピー

pack() この関数は、バイナリ データを 16 進数表現に変換するために使用することもできます。

bin2hex()

とは異なり、pack() 関数は 16 進形式指定子を使用して変換形式を指定します。 $binaryData = "01001000"; $hexData = Pack("H*", $binaryData); 出力結果:

40
ログイン後にコピー
ログイン後にコピー

sprintf()関数
ログイン後にコピー
ログイン後にコピー

sprintf() sprintf()

関数は、バイナリ データを 16 進表現に変換する別の方法を提供します。

%x 形式指定子を使用して 16 進形式を指定します。 $binaryData = "01001000"; $hexData = sprintf("%x", $binaryData);

出力結果:
ログイン後にコピー
40

カスタム関数
ログイン後にコピー

コントロール変換プロセスをカスタマイズする必要がある場合は、カスタム関数を使用できます。この関数は次の手順を実行できます:

バイナリ文字列をバイト配列

    に分割します。
  1. 各バイトを対応する 16 進数に変換します。
  2. 同等の 16 進数を 1 つの文字列に連結します。
  3. 以下はカスタム関数の例です:
関数 bin2hex($binaryData) { $bytes = unpack("C*", $binaryData); $hexData = ""; foreach ($byte として $byte) { $hexData .= dechex($byte); } $hexData を返します。 }

選定方法
ログイン後にコピー

使用する変換方法は、特定のニーズによって異なります。シンプルで高速なソリューションが必要な場合は、bin2hex()

関数が適しています。変換プロセスをさらに制御する必要がある場合は、

pack() 関数またはカスタム関数の使用を検討してください。 ######例###### 次に、さまざまな方法を使用してバイナリ データを 16 進数表現に変換する例を示します。 $binaryData = "01001000"; //bin2hex()関数を使用する $hexData1 = bin2hex($binaryData); //pack()関数を使用する $hexData2 = パック("H*", $binaryData); //sprintf()関数を使用する $hexData3 = sprintf("%x", $binaryData); //カスタム関数を使用する $hexData4 = bin2hex($binaryData); //結果を表示する エコー "bin2hex(): $hexData1 "; エコー「パック(): $hexData2」 "; エコー「sprintf(): $hexData3」 "; echo "カスタム関数: $hexData4 ";

出力結果: bin2hex(): 40 パック(): 40 スプリントf(): 40 カスタム関数: 40

以上がPHP でバイナリデータを 16 進数表現に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:lsjlt.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート