yii2 を使用して QR コードを生成する具体的な手順
QR コードを生成する具体的な手順は次のとおりです:
1. 公式 Web サイトからクラス ライブラリをダウンロードします
クラスをダウンロードした後公式 Web サイトからライブラリを入手し、現在の PHP 環境が GD2 をサポートしていることを確認してください。その後、phpqrcode.php を使用して QR コードを生成するだけです。
phpqrcode.php はキー png() メソッドを提供し、
パラメーター $text は生成された 2 桁の情報テキストを表します。
パラメータ $outfile は、QR コード画像ファイルを出力するかどうかを示し、デフォルトは no です; - パラメータ $level は、フォールト トレランス レートを示します。覆われた領域は引き続き認識できます、それぞれ L (QR_ECLEVEL_L、7%)、M (QR_ECLEVEL_M、15%)、Q (QR_ECLEVEL_Q、25%)、H (QR_ECLEVEL_H、30%);
- パラメータ $size は、生成される画像のサイズを示します。デフォルトは 3 です。パラメータ $margin は、QR コードの周囲の境界線の空白領域の間隔値を示します。
- パラメータ $saveandprint は、QR コードを保存して表示するかどうかを示します。
- 2. ダウンロード後、以下に示すように、解凍した phpqrcode フォルダーを extensions フォルダーの下に配置します:
3. クラスの導入
Yii::$enableIncludePath = false; Yii::import ('application.extensions.phpqrcode.phpqrcode', 1 );
4、特定のコード
public function actionQrcode(){ $this->breadcrumbs=array_merge($this->breadcrumbs,array( '生成二维码' )); $qrcode_path=''; $file_tmp_name=''; $errors=array(); if(!empty($_POST)){ $content = trim($_POST['content']); //二维码内容 $contentSize=$this->getStringLength($content); if($contentSize>290){ $errors[]='字数过长,不能多于150个字符!'; } Yii::$enableIncludePath = false; Yii::import ('application.extensions.phpqrcode.phpqrcode', 1 ); if(isset($_FILES['upimage']['tmp_name']) && $_FILES['upimage']['tmp_name'] && is_uploaded_file($_FILES['upimage']['tmp_name'])){ if($_FILES['upimage']['size']>512000){ $errors[]="你上传的文件过大,最大不能超过500K。"; } $file_tmp_name=$_FILES['upimage']['tmp_name']; $fileext = array("image/pjpeg","image/jpeg","image/gif","image/x-png","image/png"); if(!in_array($_FILES['upimage']['type'],$fileext)){ $errors[]="你上传的文件格式不正确,仅支持 png, jpg, gif格式。"; } } $tpgs=$_POST['tpgs'];//图片格式 $bas_path=dirname ( Yii::app ()->BasePath ); $qrcode_bas_path=$bas_path.'/upload/qrcode/'; if(!is_dir($qrcode_bas_path)){ mkdir($qrcode_bas_path, 0777, true); } $uniqid_rand=date("Ymdhis").uniqid(). rand(1,1000); $qrcode_path=$qrcode_bas_path.$uniqid_rand. "_1.".$tpgs; $qrcode_path_new=$qrcode_bas_path.$uniqid_rand."_2.".$tpgs; if(Helper::getOS()=='Linux'){ $mv = move_uploaded_file($file_tmp_name, $qrcode_path); }else{ //解决windows下中文文件名乱码的问题 $save_path = Helper::safeEncoding($qrcode_path,'GB2312'); if(!$save_path){ $errors[]='上传失败,请重试!'; } $mv = move_uploaded_file($file_tmp_name, $qrcode_path); } if(empty($errors)){ $errorCorrectionLevel = $_POST['errorCorrectionLevel'];//容错级别 $matrixPointSize = $_POST['matrixPointSize'];//生成图片大小 $matrixMarginSize = $_POST['matrixMarginSize'];//边距大小 //生成二维码图片 QRcode::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize); $QR = $qrcode_path_new;//已经生成的原始二维码图 $logo = $qrcode_path;//准备好的logo图片 if (file_exists($logo)) { $QR = imagecreatefromstring(file_get_contents($QR)); $logo = imagecreatefromstring(file_get_contents($logo)); $QR_width = imagesx($QR);//二维码图片宽度 $QR_height = imagesy($QR);//二维码图片高度 $logo_width = imagesx($logo);//logo图片宽度 $logo_height = imagesy($logo);//logo图片高度 $logo_qr_width = $QR_width / 5; $scale = $logo_width/$logo_qr_width; $logo_qr_height = $logo_height/$scale; $from_width = ($QR_width - $logo_qr_width) / 2; //重新组合图片并调整大小 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); //输出图片 // header("Content-type: image/png"); imagepng($QR,$qrcode_path); imagedestroy($QR); }else{ $qrcode_path=$qrcode_path_new; } $qrcode_path=str_replace($bas_path,'', $qrcode_path); }else{ $qrcode_path=''; } } $data=array('data'=>array('errors'=>$errors,'qrcode_path'=>$qrcode_path)); $this->render ( 'qrcode',$data); }
無料のビデオ チュートリアルの共有:
php ビデオ チュートリアル<?php $vars = get_defined_vars (); $data = $vars ['data']; $content=Yii::app ()->request->hostInfo; $matrixPointSize=6; $matrixMarginSize=2; $errorCorrectionLevel='M'; $tpgs='gif'; if(!empty($_POST)){ $content=$_POST['content']; $matrixPointSize=$_POST['matrixPointSize']; $matrixMarginSize=$_POST['matrixMarginSize']; $errorCorrectionLevel=$_POST['errorCorrectionLevel']; $tpgs=$_POST['tpgs']; } $arrayCorrectionLevel=array('L'=>'L - Low (7%)','M'=>'M - Medium (15%)','Q'=>'Q - Quartile (25%)','H'=>'H - High (30%)'); $arrayTpgs=array('gif'=>'gif格式','png'=>'png格式','jpg格式'); ?> <div class="col-md-12"> <div class="form-horizontal panel panel-default margin-t-10 b-img"> <div class="panel-heading"> <div class="pull-left"> <span class="g-bg glyphicon glyphicon-wrench margin-r-2" aria-hidden="true"></span>在线生成二维码 </div> <div class="clearfix"></div> </div> <?php $form = $this->beginWidget ( 'CActiveForm', array ( 'id' => 'qrcode-form', 'htmlOptions' => array ( 'id' => 'view_table', 'class' => 'add-form padding-10', 'enctype' => 'multipart/form-data' ), 'enableAjaxValidation' => false ) ); ?> <div class="form-group"> <label class="col-lg-2 control-label">尺寸大小</label> <div class="col-lg-3"> <select class="form-control" id="matrixPointSize" name="matrixPointSize"> <?php for ($i=1;$i<21;$i++):?> <option value="<?php echo $i;?>" <?php echo $i==$matrixPointSize?'selected':'';?>><?php echo $i;?></option> <?php endfor;?> </select> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">边距大小</label> <div class="col-lg-3"> <select class="form-control" id="matrixMarginSize" name="matrixMarginSize"> <?php for ($i=0;$i<21;$i++):?> <option value="<?php echo $i;?>" <?php echo $i==$matrixMarginSize?'selected':'';?>><?php echo $i;?></option> <?php endfor;?> </select> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">容错级别</label> <div class="col-lg-3"> <?php echo CHtml::dropDownList('errorCorrectionLevel',$errorCorrectionLevel, $arrayCorrectionLevel,array('class'=>'form-control'));?> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">保存格式</label> <div class="col-lg-3"> <?php echo CHtml::dropDownList('tpgs',$tpgs, $arrayTpgs,array('class'=>'form-control'));?> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">二维码内容</label> <div class="col-lg-5"> <?php echo CHtml::textField('content',$content,array('class'=>'form-control','maxlength'=>150));?> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">二维码logo图片</label> <div class="col-lg-5"> <div class="col-md-6"> <input id="upimage" type="file" name="upimage" class="hidden"> <input id="tmp_file" class="form-control" type="text" value="gif,png,jpg"> </div> <div class="col-md-6"><a class="btn btn-default" onclick="$('input[id=upimage]').click();">选择文件</a></div> </div> </div> <div class="list_back"> <input type="submit" value="生成二维码" class="btn btn-success"> </div> </div> <?php $this->endWidget(); ?> <div class="panel panel-default margin-t-10 b-img"> <div class="panel-heading"> <span class="g-bg glyphicon glyphicon-wrench margin-r-2" aria-hidden="true"></span>二维码 </div> <div class="panel-body"> <?php if(empty($_POST)):?> <?php echo CHtml::image('/static/tool/qrcode/qrcode.gif','二维码');?> <?php endif;?> <?php if(!empty($data['errors'])):?> <label class="col-lg-2 text-right">生成失败</label> <div class="col-lg-5"> <?php foreach ($data['errors'] as $e):?> <?php echo $e;?><br> <?php endforeach;?> </div> <?php endif;?> <?php if(!empty($data['qrcode_path'])):?> <?php echo CHtml::image($data['qrcode_path'],'二维码');?> <a class="btn btn-success color-f" href="<?php echo $data['qrcode_path'];?>" target="_blank"><span aria-hidden="true" class="glyphicon glyphicon-download-alt margin-r-2"></span>右键另存为二维码</a> <?php endif;?> </div> </div> <?php $this->renderPartial('/component/duoshuo_common');?> </div>
最終的な効果は次のとおりです:
関連する推奨事項:
以上がyii2 を使用して QR コードを生成する具体的な手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











1. ソフトウェアを開き、wps テキスト操作インターフェイスに入ります。 2. このインターフェースで挿入オプションを見つけます。 3. [挿入] オプションをクリックし、編集ツール領域で [QR コード] オプションを見つけます。 4. [QR コード] オプションをクリックして、[QR コード] ダイアログ ボックスをポップアップ表示します。 5. 左側のテキスト オプションを選択し、テキスト ボックスに情報を入力します。 6. 右側で、QR コードの形状と QR コードの色を設定できます。

PHP を使用して QR コードを動的に生成する方法. QR コード (QR コード) は、大量の情報を保存でき、スキャンが簡単で、さまざまな分野で広く使用されています。 Web アプリケーションでは、ユーザーに便利な操作を提供するために QR コードを動的に生成する必要があることがよくあります。この記事では、PHPを使用してQRコードを動的に生成する方法を紹介します。 1. PHPQRCode ライブラリをインストールして設定する QR コードの生成を容易にするために、PHPQRCode ライブラリを使用できます。まず必要なのは、

前提条件: iPhone で QR コード スキャンを有効にする QR コードをスキャンする機能は、iOS 11 を実行しているすべての iPhone でデフォルトで有効になっています。したがって、QR コードをネイティブにスキャンできるようにするには、iPhone が利用可能な最新バージョン (少なくとも iOS11) に更新されていることを確認する必要があります。以下のいずれかの方法に進む前に、iPhone でこの機能が有効になっていることを確認する必要があります。 iPhone で QR コード スキャンを有効にするには、設定アプリを開いて [カメラ] セクションをタップします。次の画面で、「QR コードのスキャン」トグルを有効にします。これにより機能がオンになり、次のいずれかの方法を使用して QR コードをスキャンして抽出できるようになります。

PHP を使用してバッチ QR コードを生成するにはどうすればよいですか?インターネット技術の継続的な発展に伴い、QR コードは非常に一般的な情報伝達ツールになりました。 QR コードは大量の情報を保存でき、素早くスキャンして認識できるため、さまざまな業界で広く使用されています。商品ラベルやイベントチケットなど、多くの場合、大量のQRコードをバッチで生成する必要があります。 PHP は Web 開発で広く使用されているスクリプト言語であり、柔軟性があり、シンプルで使いやすいです。以下では、PHP を使用して生成する方法を紹介します。

Enterprise WeChat の QR コードを読み込めない場合はどうすればよいですか? Enterprise WeChat のコンピューター版にログインするときに、QR コードが読み込めず、表示できない場合はどうすればよいですか? ここでは、Enterprise の QR コードが表示されない問題の解決策を編集者が詳しく紹介します。 WeChat をロードできません。必要な方はぜひお友達、見に来てください!方法 1. ネットワークの理由 1. ネットワーク速度が遅いため、読み込みが遅く表示されない可能性があります。切断して再接続できます。 2. コンピュータ自体のネットワークの問題を調べて、ネットワークに接続されているかどうかを確認し、ネットワーク デバイスを再起動します。方法 2: メンテナンスと更新: Enterprise WeChat のバージョンが低すぎるため、QR コードが生成されない可能性がありますが、ソフトウェアを最新バージョンにアップグレードできます。方法 3、ファイアウォール 1

PHPを使用して時間制限付きのQRコードを生成するにはどうすればよいですか?モバイル決済や電子チケットの普及により、QR コードは一般的なテクノロジーになりました。多くのシナリオでは、一定期間が経過しても無効になる期限付きの QR コードを生成する必要がある場合があります。この記事では、PHP を使用して時間制限のある QR コードを生成する方法と、参考となるコード例を紹介します。 PHPQRCode ライブラリのインストール PHP を使用して QR コードを生成するには、まず PHPQRCode ライブラリをインストールする必要があります。この図書館

QR コードは現代社会で広く使用されている情報暗号化手法であり、フロントエンド フレームワークである Vue を使用して QR コードを生成するにはどうすればよいですか? 1. QR コード生成の原理を理解する QR コード生成の原理は、テキストや URL アドレスを画像に変換し、テキストや URL アドレスの情報をエンコードすることです。サードパーティのライブラリを使用して QR コードを生成できます。この記事では、Qrcode.js ライブラリを使用して QR コードを生成する方法を紹介します。 Qrcode.js は、軽量で依存関係のない QR コード生成ライブラリです。二

yii2 から jquery を削除する方法: 1. AppAsset.php ファイルを編集し、変数 $depends の「yii\web\YiiAsset」値をコメント アウトします; 2. main.php ファイルを編集し、設定「'yii」を以下に追加しますフィールド「components」\web\JqueryAsset' => ['js' => [],'sourcePath' => null,]," を使用して jquery スクリプトを削除します。
