This article mainly introduces two methods and examples for generating a QR code in PHP, using GoogleAPI and the php qr code to generate a class library PHPQRCode. For more information, see the progress of technology, the QR code application field is getting wider and wider. previous articles on this site have introduced how to generate a QR code by using the jQuery plug-in. today I will share with you how to generate a QR code using PHP and how to generate a QR code with a central LOGO image.
Use Google API to generate QR code
Google provides a comprehensive interface for generating QR codes. the following code calls an API:
The code is as follows:
$ UrlToEncode = "http://www.bitsCN.com ";
GenerateQRfromGoogle ($ urlToEncode );
/**
* Google api QR code generation [QRcode can store any text of a maximum of 4296 letters/numbers. for details, see the QR code data format]
* @ Param string $ information contained in the chlorophyll QR code, which can be numbers, characters, binary information, and Chinese characters.
Cannot mix data types, data must go through UTF-8 URL-encoded
* @ Param int $ widhtHeight: set the size of the generated QR code
* @ Param string $ EC_level: the error correction level is optional. the QR code supports four levels of error correction, which is used to restore lost, read, fuzzy, and data.
* L-default: 7% of lost data can be identified.
* M-identifies 15% of data loss
* Q-identifies 25% of data loss
* H-identifies 30% of data loss
* @ Param int $ the distance between the QR code generated by margin and the image border
*/
Function generateQRfromGoogle ($ chlorophyll, $ widhtHeight = '000000', $ EC_level = 'l', $ margin = '0 ')
{
$ Chlorophyll = urlencode ($ chlorophyll );
Echo '& cht = qr & chld = '. $ EC_level. '| '. $ margin. '& chlorophyll = '. $ chlorophyll. '"alt =" QR code "widhtHeight = "'. $ widhtHeight.'
"WidhtHeight =" '. $ widhtHeight.' "/> ';
}
Use php qr Code to generate a class library php qr Code to generate a QR Code
Php qr Code is a php qr Code generation class library that allows you to easily generate QR codes. the official website provides download and multiple demo demos at: http://phpqrcode.sourceforge.net /.
After downloading the class library provided on the official website, you only need to use phpqrcode. php to generate a QR code. of course, you must enable GD2 in your PHP environment. Phpqrcode. php provides a key png () method. the parameter $ text indicates that two pieces of information are generated. the parameter $ outfile indicates whether to output the two-dimensional code image file. the default value is No; the $ level parameter indicates the coverage rate, that is, the covered areas can also be identified, namely, 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; default value: 3; parameter $ margin indicates the gap between blank areas of the border around the QR code; the parameter $ saveandprint indicates whether to save the QR code and display it.
The code is as follows:
Public static function png ($ text, $ outfile = false, $ level = QR_ECLEVEL_L, $ size = 3, $ margin = 4,
$ Saveandprint = false)
{
$ Enc = QRencode: factory ($ level, $ size, $ margin );
Return $ enc-> encodePNG ($ text, $ outfile, $ saveandprint = false );
}
Calling php qr Code is very simple, the following Code can generate a content for "http://www.bitsCN.com" QR Code.
The code is as follows:
Include 'phpqrcode. php ';
QRcode: png ('http: // www.bitsCN.com ');
In practice, we will add our own LOGO in the middle of the QR code to enhance the promotion effect. How to generate a QR code containing a logo? In fact, the principle is very simple. First, use the php qr Code to generate a QR Code image, and then use the php image function to add the prepared logo image to the middle of the generated original QR Code image, then generate a new QR code image.
The code is as follows:
Include 'phpqrcode. php ';
$ Value = 'http: // www.bitsCN.com '; // QR code content
$ ErrorCorrectionLevel = 'l'; // fault tolerance level
$ MatrixPointSize = 6; // generate the image size
// Generate a QR code image
QRcode: png ($ value, 'qrcode.png ', $ errorCorrectionLevel, $ matrixPointSize, 2 );
$ Logo = 'logo.png '; // prepared logo image
$ QR = 'qrcode.png '; // generated original QR code
If ($ logo! = FALSE ){
$ QR = imagecreatefromstring (file_get_contents ($ QR ));
$ Logo = imagecreatefromstring (file_get_contents ($ logo ));
$ QR_width = imagesx ($ QR); // the image width of the QR code.
$ QR_height = imagesy ($ QR); // The Image height of the QR code.
$ Logo_width = imagesx ($ logo); // logo image width
$ Logo_height = imagesy ($ logo); // logo image height
$ 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;
// Re-combine and resize the image
Imagecopyresampled ($ QR, $ logo, $ from_width, $ from_width, 0, 0, $ logo_qr_width,
$ Logo_qr_height, $ logo_width, $ logo_height );
}
// Output image
Imagepng ($ QR, 'helloweba.png ');
Echo '';
Because the QR code allows some fault tolerance, even if the hidden part of the QR code is still decoded, the scan results can be decoded when we scan the QR code in less than half, this is because the generator repeatedly expresses some information to improve the fault tolerance. This is why we add a LOGO image in the middle of the QR code without affecting the decoding result.