株式会社プロネット

 

WEBシステム開発、ITコンサルティング、自社サービス、教育事業 - これからのビジネスへのIT活用ソリューションをご提案致します。

【PHP】 16進エンコードされたバイナリ文字列をデコードする

2015.12.9(Wed) 19:00 | PHP | sofuku

この前、パラメータとして渡された文字列が16進エンコードされたもので、デコードする必要があるというケースがあったのでポストしておきます。

PHPのバージョン5.4以上であればhex2bin関数が使用できます。

 

環境

PHP:5.5.9

 

16進エンコードされた文字列のデコード例

// 'example hex data'を16進エンコード
$hoge = bin2hex('example hex data');
 
// エンコードされた文字列をデコード
$moge = hex2bin($hoge);
 
// example hex dataが出力されます
var_dump($moge);

 

PHPのバージョンが5.4未満でhex2binが使えない、という場合はpack関数で同様の処理が行えます。

// PHP5.4未満
// 'example hex data'を16進エンコード
$hoge = bin2hex('example hex data');
 
// エンコードされた文字列をデコード
$moge = pack("H*", $hoge);
 
// example hex dataが出力されます
var_dump($moge);