The specific steps to generate the QR code are as follows:
1. Download the class library from the official website
After downloading the class library from the official website, make sure The current PHP environment supports GD2, and then we only need to use phpqrcode.php to generate QR codes.
phpqrcode.php provides a key png() method, in which the
parameter $text represents the generated two-digit information text;
The parameter $outfile indicates whether to output a QR code image file, the default is no;
The parameter $level indicates the fault tolerance rate, that is, the covered area can still be recognized , respectively L (QR_ECLEVEL_L, 7%), M (QR_ECLEVEL_M, 15%), Q (QR_ECLEVEL_Q, 25%), H (QR_ECLEVEL_H, 30%);
Parameter $size Indicates the size of the generated image, the default is 3; the parameter $margin indicates the spacing value of the blank area of ??the border around the QR code;
The parameter $saveandprint indicates whether to save the QR code and display it.
2. After downloading, place the decompressed phpqrcode folder under the extensions folder, as shown below:
3. Introduce class
Yii::$enableIncludePath = false; Yii::import ('application.extensions.phpqrcode.phpqrcode', 1 );
4, specific code
public function actionQrcode(){ $this->breadcrumbs=array_merge($this->breadcrumbs,array( '生成二維碼' )); $qrcode_path=''; $file_tmp_name=''; $errors=array(); if(!empty($_POST)){ $content = trim($_POST['content']); //二維碼內(nèi)容 $contentSize=$this->getStringLength($content); if($contentSize>290){ $errors[]='字?jǐn)?shù)過長(zhǎng),不能多于150個(gè)字符!'; } 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[]='上傳失敗,請(qǐng)重試!'; } $mv = move_uploaded_file($file_tmp_name, $qrcode_path); } if(empty($errors)){ $errorCorrectionLevel = $_POST['errorCorrectionLevel'];//容錯(cuò)級(jí)別 $matrixPointSize = $_POST['matrixPointSize'];//生成圖片大小 $matrixMarginSize = $_POST['matrixMarginSize'];//邊距大小 //生成二維碼圖片 QRcode::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize); $QR = $qrcode_path_new;//已經(jīng)生成的原始二維碼圖 $logo = $qrcode_path;//準(zhǔn)備好的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; //重新組合圖片并調(diào)整大小 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); }
Free video tutorial sharing: php video tutorial
4, front-end upload interface
<?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">容錯(cuò)級(jí)別</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">二維碼內(nèi)容</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>
The final effect is as follows:
Related recommendations: yii framework
The above is the detailed content of Specific steps to generate QR code using yii2. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

1. Open the software and enter the wps text operation interface. 2. Find the insert option in this interface. 3. Click the Insert option and find the QR code option in its editing tool area. 4. Click the QR code option to pop up the QR code dialog box. 5. Select the text option on the left and enter our information in the text box. 6. On the right side, you can set the shape of the QR code and the color of the QR code.

How to use PHP to dynamically generate QR codes. QR codes (QRCode) are widely used in various fields. They can store a large amount of information and are easy to scan. In web applications, we often need to dynamically generate QR codes to provide users with convenient operations. This article will introduce how to use PHP to dynamically generate QR codes. 1. Install and configure the PHPQRCode library. In order to facilitate the generation of QR codes, we can use the PHPQRCode library. First, we need

Prerequisite: Enable QR code scanning on your iPhone The ability to scan QR codes is enabled by default on all iPhones running iOS 11. Therefore, you need to make sure your iPhone is updated to the latest available version, at least iOS11, to be able to scan QR codes natively. Before proceeding with any of the methods below, you must ensure that the feature is enabled on your iPhone. You can enable QR code scanning on your iPhone by opening the Settings app and tapping the Camera section. On the next screen, enable the "Scan QR code" toggle. This should turn on the feature so you can scan and extract from QR codes using any of the following methods

What should I do if the QR code on Enterprise WeChat cannot be loaded? What should we do when we find that the QR code cannot be loaded and cannot be displayed when logging into the computer version of Enterprise WeChat? Here, the editor will give you a detailed introduction to the solution to the problem that the QR code of Enterprise WeChat cannot be loaded. Anyone who needs it Friends, come and take a look! Method 1. Network reasons 1. The network speed may be slow, resulting in slow loading and failure to display. You can disconnect and reconnect. 2. Check the computer's own network problems to see if it is connected to the network. You can restart the network device. Method 2: Maintenance and update: The QR code may not be generated because the version of Enterprise WeChat is too low. You can upgrade the software to the latest version. Method three, firewall 1

How to use PHP to generate batch QR codes? With the continuous development of Internet technology, QR codes have become a very common information transmission tool. QR codes can store a large amount of information and can be quickly scanned and recognized, so they have been widely used in various industries. In many cases, we need to generate a large number of QR codes in batches, such as for product labels, event tickets, etc. PHP is a scripting language widely used in web development and is flexible, simple and easy to use. Below, we will introduce how to use PHP to generate

How to generate QR code with time limit using PHP? With the popularity of mobile payments and electronic tickets, QR codes have become a common technology. In many scenarios, we may need to generate a QR code with a time limit, which will become invalid even after a certain period of time. This article will introduce how to use PHP to generate a time-limited QR code and provide code examples for reference. Installing the PHPQRCode library To use PHP to generate QR codes, we need to install the PHPQRCode library first. This library

How to write a simple QR code generator through PHP QR codes have become very common in modern society. They can quickly transmit information and improve user experience. In this article, I will introduce you to how to write a simple QR code generator using PHP. 1. Install the necessary tools and libraries Before starting, we need to make sure that the following tools and libraries have been installed: PHP: Make sure that the latest version of PHP is installed. You can check the current PHP version by running the php-v command. Composer: C

QR code is a widely used information encoding method in modern society. Vue is a front-end framework. How to use Vue to generate QR code? 1. Understand the principle of QR code generation. The principle of QR code generation is to convert a piece of text or a URL address into a picture, in which the information of the text or URL address is encoded. You can use third-party libraries to generate QR codes. This article introduces how to use the Qrcode.js library to generate QR codes. Qrcode.js is a lightweight, dependency-free QR code generation library. two
