QRコードまたはバーコードデータを処理する場合、エンコードされた16進文字列に遭遇することがよくあります。このエンコードされた情報を読み取り可能なデータに復元するために、PHPは非常に実用的な機能-HexDec()を提供します。この記事では、hexDec()関数を使用してQRコードまたはバーコードでヘクスコード情報を解析する方法について説明します。
PHPのHexDec()関数は、16進ストリングを小数点以下数に変換するために使用されます。これは、特に基礎となるエンコードまたはプロトコルデータを扱う場合、数値情報を含むエンコーディングを解析するのに非常に役立ちます。
$hex = '1A';
$decimal = hexdec($hex);
echo $decimal; // 出力 26
この関数は、16進の文字列パラメーター( 0xから開始する必要はありません)を受け入れ、対応する10進整数値を返します。
一部のシステムでは、QRコードまたはバーコードが情報を一連の16進数文字に圧縮します。たとえば、一部の支払いシステムまたはロジスティクスタグには、次のようなコード化された情報が含まれている場合があります。
3031323334
これは、実際には16進数でエンコードされたASCIIの形式です。30は0、31は1などです。したがって、2つのキャラクターごとに16進数として解析し、キャラクターに戻す必要があります。
QRコードから一連の16進コードをスキャンしたとします。
$hexString = '3435363738'; // 急行 "45678"
次のコードを記述して、元の文字列を復元できます。
$hexString = '3435363738';
$decoded = '';
for ($i = 0; $i < strlen($hexString); $i += 2) {
$hexPair = substr($hexString, $i, 2);
$decimal = hexdec($hexPair);
$decoded .= chr($decimal);
}
echo $decoded; // 出力: 45678
このプロセスは、2つのキャラクターごとにヘキサデシマルから小数に変換し、 Chr()を使用してキャラクターに復元することにより、小数に変換します。 QRコードに組み込まれたテキストまたはID番号の復元に最適です。
たとえば、バーコードスキャナーを使用してデータを収集する場合、次のコンテンツを返します。
url:68747470733a2f2f676974626f782e6e65742f646f776e6c6f61642f66696c652e706466
文字列文字のプレフィックスはURLです。次の方法で解析できます。
$encodedUrl = '68747470733a2f2f676974626f782e6e65742f646f776e6c6f61642f66696c652e706466';
$url = '';
for ($i = 0; $i < strlen($encodedUrl); $i += 2) {
$url .= chr(hexdec(substr($encodedUrl, $i, 2)));
}
echo $url;
// 出力: https://gitbox.net/download/file.pdf
このようにして、バーコードから完全なURLアドレス、製品番号、物流情報などを簡単に抽出できます。
QRコードとバーコードの分析では、16進コードのエンコードは、データカプセル化の一般的な方法です。 PHPのHexDec()関数とChr()関数を組み合わせて、これらのエンコードされた情報を読み取り可能なコンテンツに効率的に復元できます。実際のプロジェクトでは、このテクノロジーは、ロジスティクス追跡、支払いシステム、製品ラベルの読み取りなど、不可欠なツールの1つです。このデコード方法を習得すると、基礎となるエンコードされたデータをより深く理解して処理できます。