ホームページ >バックエンド開発 >PHPチュートリアル >PHP QRコードの生成方法(Google API、PHPクラスライブラリ、libqrencodeなど)_PHPチュートリアル
================================================方法PHP を使用するには ============================================== ===
1. Google Open APIを使用して完了します
[php]
$urlToEncode="名前:劉新明、電話:18792448443";
生成QRfromGoogle($urlToEncode)
/**
* Google API QRコード生成 [QRコードは最大4296種類の英数字のテキストを保存できます。詳細についてはQRコードのデータ形式を確認してください]
* @param string $chl QR コードに含まれる情報は、数字、文字、バイナリ情報、または漢字です。データ型を混在させることはできず、データは UTF-8 URL エンコードされている必要があります。転送する必要がある情報が 2K バイトを超える場合は、POST メソッドを使用してください。
* @param int $widhtHeight QRコード生成時のサイズ設定
* @param string $EC_level オプションのエラー修正レベル。QR コードは、紛失、誤読、あいまいなデータの回復に使用される 4 つのレベルのエラー修正をサポートします。
* L-デフォルト: 失われたデータの 7% を特定できます
* M-15% 失われたデータを識別できます
* Q-25% 失われたデータを識別できます
* H-30% 失われたデータを識別できます
* @param int $margin 生成されたQRコードと画像の境界線の間の距離
*/
関数generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')
{
$chl = urlencode($chl);
echo '';
}
詳細については、百度ライブラリを参照してください: http://wenku.baidu.com/view/b2a6ffc60c22590102029dae.html
2. PHP ライブラリ PHP QR コード
PHP QR コードは、QR コードを生成するためのオープンソース (LGPL) ライブラリです
QR コード バーコード画像 (GD2 のおかげで PNG、JPEG) を作成するための API を提供します。
外部依存関係はなく、純粋に PHP で実装されています (必要に応じて GD2 を除く)。
PS: 時間の都合上、Google のオープン API のみをテストしましたが、正常でした。その他は自分でテストできます。
=============================================== について学ぶ次の 2 つ QR コードの原理========================================== ===== ====
2次元バーコードは、データや情報を記録するために、特定の規則に従って平面上に配置された特定の幾何学的図形を使用する白黒のグラフィックです。
一般的に使用されるコード システムには、Data Matrix、Maxi Code、Aztec、QR Code、Vericode、PDF417、Ultracode、Code 49、Code 16K などが含まれます。
①: Code 16K、Code 49、PDF417 (以下を参照) などのスタック/ライン 2D バーコード
②: マトリックス QR コード、最も人気があるのは QR CODE です
QR コードには大量のデータが保存され、数字、文字、中国語のテキストなどのコンテンツが混在する可能性があります。スペース使用率が高い。
上の図は、QRコードの基本構造を示しています。
位置検出グラフィックス、位置検出グラフィックスセパレーター、位置決めグラフィックス: 各 QR コードの位置は固定されていますが、サイズと仕様は異なります。
修正グラフィック: 仕様が決定すると、修正グラフィックの数と位置も決まります。
フォーマット情報: QR コードのエラー訂正レベルを L、M、Q、H に分けて示します。
バージョン情報: QR コードの仕様は、21x21 (バージョン 1) から 177x177 (バージョン 40) までの 40 個の QR コード シンボル (通常は白と黒) の仕様があります。シンボルの各バージョンは大きくなります。以前のバージョンよりも側面に 4 つのモジュールが追加されます。
データおよびエラー修正コード ワード: 実際に保存された QR コード情報、およびエラー修正コード ワード (QR コードの損傷によって引き起こされたエラーを修正するために使用されます)。
簡単なコーディングプロセス:
1. データ分析: エンコードされた文字タイプを決定し、対応する文字セットに従って記号文字に変換します。特定の条件下では、エラー訂正レベルが高いほど、実際のデータ容量は小さくなります。
2. データ エンコーディング: データ文字を 8 ビットごとに 1 つのコードワードでビット ストリームに変換し、全体としてデータ コードワード シーケンスを形成します。実際、このデータコードワードシーケンスを知ることは、QRコードのデータ内容を知ることを意味します。
データは、より効率的にデコードするためのパターンに従ってエンコードできます。例: データ: 01234567 エンコード (バージョン 1-H)、
1) グループ: 012 345 67
2) バイナリに変換: 012→0000001100
3) シーケンスに変換: 0000001100 0101011001 1000011
4) バイナリに変換された文字数: 8→0000001000
モード インジケーター (上の図の番号) 0001: 0001 を追加します。 00001000 0000001100 0101011001 1000011
文字、中国語、日本語などは、グループ化方法、モード、その他の内容が異なるだけです。基本的な作り方は同じです
3. 誤り訂正符号化:上記の符号語列を必要に応じてブロックに分割し、誤り訂正レベルとブロック符号語に基づいて誤り訂正符号語を生成し、その誤り訂正符号語をデータ符号語列の後ろに追加して新たな符号語とする。順序。
QRコードの仕様と誤り訂正レベルが決まると、対応できるコードワード数と誤り訂正コードワードの総数も決まります。たとえば、バージョン10の場合、誤り訂正レベルがHの場合、対応できるコードワード数と誤り訂正コードワード数が決まります。 224 個の誤り訂正コードワードを含む、合計 346 個のコードワード。
4. 最終的なデータ情報の構築: 決定された仕様の条件の下、上記で生成されたシーケンスを順番にブロックに配置します
規則に従ってデータをブロックに分割し、各ブロックを計算して対応する誤り訂正符号語ブロックを取得し、誤り訂正符号語ブロックを順番にシーケンス化し、元のデータ符号語シーケンスの末尾に追加します。
例: D1、D12、D23、D35、D2、D13、D24、D36、... D11、D22、D33、D45、D34、D46、E1、E23、E45、E67、E2、E24、E46、E68、 ..
マトリックスの構築: 検出パターン、セパレーター、位置決めパターン、補正パターン、コードワード モジュールをマトリックスに入力します。
上記の完全なシーケンスを、対応する仕様の QR コード マトリックスの領域に入力します
6. マスキング: QR コード グラフィックスの暗い領域と明るい (黒と白) 領域が最適な比率で分配されるように、シンボルのコーディング領域にマスキング グラフィックスを使用します。
アルゴリズムがあり、調査は不要なので、興味のある学生は続けることができます。
バージョン 7 ~ 40 はすべてバージョン情報を含み、バージョン情報がないものはすべて 0 です。 QR コード上の 2 つの場所にはバージョン情報が含まれていますが、これは重複しています。
バージョン情報は6×3の計18ビットであり、このうち6ビットのデータが例えばバージョン番号8、データビット情報が001000、続く12ビットが誤り訂正ビットである。