MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのUNHEX()に相当するPHP関数とは?hex2bin()の使い方を解説

PHPにおけるMySQLのUNHEX()相当の関数

MySQLのUNHEX()関数と同じ処理をPHPで行いたい場合は、hex2bin()関数を使用します。この関数は、16進数形式の文字列をバイナリデータ(元の文字列)に変換するもので、まさにMySQLのUNHEX()に相当する機能を持っています。

hex2bin()の基本構文

構文は以下の通りです。

$anyVariableName = hex2bin("yourHexadecimalValue");

引数には16進数の文字列を指定し、戻り値として変換後のバイナリデータが返されます。

PHPでの実装例

実際にhex2bin()を使用したサンプルコードを見てみましょう。

$myFirstValue = hex2bin("7777772E4D7953514C4578616D706C652E636F6D");
var_dump($myFirstValue);
$mySecondValue = hex2bin("416476616E6365644A617661576974684672616D65776F726B");
echo('<br>');
var_dump($mySecondValue);

このコードを実行すると、16進数の文字列がそれぞれ「www.MySQLExample.com」と「AdvancedJavaWithFramework」という文字列に変換されて出力されます。

MySQLのUNHEX()との比較

参考として、MySQL側で同じ変換を行った場合の結果も確認してみましょう。

ケース1:次のクエリを実行します。

mysql> SELECT UNHEX("7777772E4D7953514C4578616D706C652E636F6D");

実行結果は以下の通りです。

+---------------------------------------------------+
| UNHEX("7777772E4D7953514C4578616D706C652E636F6D") |
+---------------------------------------------------+
| www.MySQLExample.com                              |
+---------------------------------------------------+
1 row in set (0.00 sec)

ケース2:次のクエリを実行します。

mysql> SELECT UNHEX("416476616E6365644A617661576974684672616D65776F726B");

実行結果は以下の通りです。

+-------------------------------------------------------------+
| UNHEX("416476616E6365644A617661576974684672616D65776F726B") |
+-------------------------------------------------------------+
| AdvancedJavaWithFramework                                   |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

まとめ

このように、PHPのhex2bin()はMySQLのUNHEX()と完全に同等の動作をし、同じ16進数値から同一の結果が得られることが確認できます。なお、hex2bin()はPHP 5.4.0以降で利用可能です。不正な16進数を渡した場合には警告が発生し、falseが返される点にも注意して使用しましょう。

  1. MySQLのTIME_TO_SEC()に相当するPHPの関数は?日時を秒に変換する方法

    MySQLのTIME_TO_SEC()とPHPのstrtotime()MySQLでは、時間を秒数に変換するためにTIME_TO_SEC()関数を使用できます。一方、PHPで日時(datetime)を秒に変換したい場合は、strtotime()関数がその役割を果たします。MySQLにおけるTIME_TO_SEC()の基本的な構文は以下の通りです。SELECT TIME_TO_SEC(ABS(timediff(yourDateTimeValue,now())));次に、PHPのstrtotime()を使って日時を秒に変換する具体的な方法を見ていきましょう。XAMPPサーバーの準備PHPプログラムを

  2. MySQLのSMALLINTに相当するJavaの型は?short型との対応関係を解説

    MySQLのSMALLINTに相当するJavaのデータ型は、short型です。Javaのshort型は2バイト(16ビット)の符号付き整数で、-32768から32767までの範囲の値を扱うことができます。MySQLのSMALLINTも同様に2バイトで、同じ範囲の値を格納可能です。MySQLのSMALLINTとJavaのshort型の比較項目MySQL(SMALLINT)Java(short)サイズ2バイト(16ビット)2バイト(16ビット)値の範囲-32768 ~ 32767-32768 ~ 32767備考UNSIGNEDを指定すると0 ~ 65535になる符号付きのみなお、MySQLでUNS