ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用して QR コードを生成する

PHP_PHP チュートリアルを使用して QR コードを生成する

WBOY
WBOYオリジナル
2016-07-13 10:29:391009ブラウズ

パラメータの説明:

cht=qr: 必須パラメータ、固定値 、QR コードが生成されることを示します
chs=x: 必要なパラメータ、生成される QR コードのサイズ、単位はピクセル、現在生成される QR コードはすべて正方形であるため、幅と高さの値は両方とも同じ値に設定されます
chl=: QR コードに含まれる情報を生成するために必要なパラメータ。数字、文字、バイナリ情報、漢字などを指定できます。データ型を混合することはできず、データは UTF-8 URL エンコードされている必要があります。転送する必要がある情報が 2K バイトを超える場合は、POST メソッドを使用する必要があります
choe=: オプションのパラメータ、エンコード形式。 UTF-8/Shift_JIS/ISO-8859-1 の 3 つのオプションが含まれており、デフォルトは UTF-8 です。
chld=|: オプションのパラメータ、
error_correction_level: フォールト トレランス レベル (4 つのレベルに分かれており、L-デフォルト: 失われたデータの 7% を識別できます。M- 失われたデータの 15% を識別できます。Q- 失われたデータの 25% を識別できます) H- 30% 失われたデータを識別できます)
マージン:生成されたQRコードと画像の境界線との間の距離
例 1: QR コードをスキャンして URL (API) を開きます
コードをコピー
//urlencode でエンコードされた QR コード情報
$data = urlencode('http://www.baidu.com');
//QRコードのサイズを生成
$size = '300x300';
//完全な API アドレス
$qrurl = "http://chart.googleapis.com/chart?chs=$size&cht=qr&chl=$data&chld=L|1&choe=UTF-8";
//QRコードを取得
$qrcode = file_get_contents($qrurl);
//出力画像
header('Content-type: image/png');
$qrcode をエコー;
コードをコピー
Web サイトを開いた後、QR コードをスキャンしてアドレス帳に会社情報をインポートする、つまり QR コードに名刺情報を含めるという目的を実現する必要があります。コードとは単に情報の集まりを意味し、この情報の山がどのようなものであるかは重要ではありません。上記の例で言えば、QR コードをスキャンするためのツールです。 WeChat で QR コードをスキャンすると、WeChat は QR コードに保存されているデータを読み取り、コンテンツが Baidu URL であることを検出すると、同様にブラウザを使用してその URL を開きます。コンテンツは単純なテキスト データの束であり、テキスト形式で表示されます。同じ WeChat では、QR コードのコンテンツが vcard 形式の電子名刺であるかどうかを識別することもできます。この形式でエクスポートされるため、コードには標準の vcard 電子名刺が含まれており、これによりスキャン ツールが名刺をアドレス帳として認識できるようになります。
コードをコピー
vcard 形式のリファレンスは次のとおりです:
開始:VCカード
バージョン:3.0
FN: ユーザー名
電話番号;携帯電話;音声:18858140621
電話番号;職場;音声:0358-2157466
TEL;勤務先;FAX:0358-2157466
メール;都道府県;インターネット:lzw#lzw.me
URL: http://lzw.me
組織:Zhiwen Studio
役割:製品部門
役職:CTO
ADR;勤務先;郵便番号 100101、北京市朝陽区北四環中路 35 号
REV:2012-12-27T08:30:02Z
終了:Vカード
必要な形式をより詳細にカスタマイズしたい場合は、Baidu vcard 形式標準を使用してください。
コードをコピー
例 2: 名刺 QR コードを生成する (API)
コードをコピー
//vcard形式のデータを構築します
$vcard =
「開始:VCARD」。
「nVERSION:3.0」。
「nFN:シャオビアン・ルオルオ」。
「nTEL;CELL;VOICE:18858140621」。
「nTEL;WORK;VOICE:0358-2157466」
「nメール:luoluo@qq.com」。
「nURL:http://www.baidu.com」。
"nADR: 浙江省杭州市浜江区".
"nEND:VCARD";
//urlencode でエンコードされた QR コード情報
$data = urlencode($vcard);
//QRコードのサイズを生成
$size = '300x300';
//完全な API アドレス
$qrurl = "http://chart.googleapis.com/chart?chs=$size&cht=qr&chl=$data&chld=L|1&choe=UTF-8";
//QRコードを取得
$qrcode = file_get_contents($qrurl);
//出力画像
header('Content-type: image/png');
$qrcode をエコー;
コードをコピー
ここまでで、元に戻すという目的はほぼ達成できましたが、実際に使ってみると、上記で組み立てたURLをimgタグのsrc属性に直接追加したため、若干の問題が発生しました。データが 2K を超える場合、この記事の冒頭に赤いフォントでマークされている QR コード生成エラーが発生します。データが 2K を超える場合、get メソッドは最大 2K のデータしか転送できません。 POST リクエストなので、実際に使用する場合は、まず POST メソッドを使用して QR コードを取得し、ローカル画像として保存し、その後、ローカル画像を直接呼び出します。
方法 2: PHP QR CODE を使用して QR コードを生成する
公式ホームページ: http://phpqrcode.sourceforge.net
ダウンロードアドレス: http://sourceforge.net/projects/phpqrcode/
使用法: QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, $margin);
* $data データ
* $filename は QR コードの保存パスを生成します false の場合はブラウザに直接出力されます
*$errorCorrectionLevel エラー処理レベル L、M、Q、H Google API のエラー修正レベルと同じです
* 各黒い点の $matrixPointSize ピクセル
* $margin 画像の周囲の白い境界線のピクセル
例 3: QR コードをスキャンして URL (phpqrcode) を開きます
コードをコピー
// qrlib.php または phpqrcode.php が含まれます
// qrlib.php を含むものは他のファイルと組み合わせる必要があります。phpqrcode.php はマージされたバージョンであり、このファイルを含める必要があるだけですが、生成される画像は遅くて不正確です
include('./phpqrcode/qrlib.php');
// QRコードデータ
$data = 'http://www.111cn.net';
// 補正レベル:L、M、Q、H
$errorCorrectionLevel = 'L';
//ポイントサイズ: 1 ~ 10
$matrixPointSize = 5;
QRcode::png($data, false, $errorCorrectionLevel, $matrixPointSize, 2);
コードをコピー
例2: 名刺QRコードを生成する(phpqrcode)
コードをコピー
// qrlib.php または phpqrcode.php が含まれます
include('./phpqrcode/qrlib.php');
//vcard データを構築する
$vcard =
「開始:VCARD」。
「nVERSION:3.0」。
「nFN:王歌」.
「nTEL;CELL;VOICE:18858140621」。
「nTEL;WORK;VOICE:0358-2157466」
「nメール:wang@qq.com」。
「nURL:http://www.mailuow.com」。
「nADR:浙江省杭州市浜江区江紅路1750号」
"nEND:VCARD";
// 補正レベル:L、M、Q、H
$errorCorrectionLevel = 'L';
//ポイントサイズ: 1 ~ 10
$matrixPointSize = 4;
QRcode::png($vcard, false, $errorCorrectionLevel, $matrixPointSize, 2);

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/771403.html技術記事パラメータの説明: cht=qr: 必要なパラメータ、固定値 qr、QR コードが生成されることを示します。 chs=widthxheight: 必要なパラメータ、生成される QR コードのサイズ、単位はピクセル、現在生成されている QR コードです。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。