Symfony生成二维码的方法

时间:2022-09-25 11:59:21

本文实例讲述了Symfony生成二维码的方法。分享给大家供大家参考,具体如下:

现在网上能搜到很多关于使用PHP生成二维码的例子,主要是两种方法:

第一种:google开放api,如下:

  1. $urlToEncode="http://blog.it985.com"
  2. generateQRfromGoogle($urlToEncode); 
  3. function generateQRfromGoogle($chl, $widhtHeight = '150', $EC_level = 'L', $margin = '0'
  4.   $url = urlencode($url); 
  5.   echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" alt="QR code" />'

附:API接口地址 https://developers.google.com/chart/infographics/docs/qr_codes

第二种:使用PHP类库 PHP QR CODE

官方地址:http://phpqrcode.sourceforge.net/

下载地址:http://sourceforge.net/projects/phpqrcode/

使用方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// include这两个文件之一:
/*
qrlib.php for full version (also you have to provide all library files
form package plus cache dir)
OR phpqrcode.php for merged version (only one file,
but slower and less accurate code because disabled cache
and quicker masking configured)
*/
// 两句话解释:
// 包含qrlib.php的话需要同其它文件放到一起:文件、文件夹。
// phpqrcode.php是合并后版本,只需要包含这个文件,但生成的图片速度慢而且不太准确
include('./phpqrcode/phpqrcode.php');
// 以下给出两种用法:
// 创建一个二维码文件
QRcode::png('code data text', 'filename.png');
// creates file
// 生成图片到浏览器
QRcode::png('some othertext 1234');
?>

附官方示例代码地址:http://phpqrcode.sourceforge.net/examples/index.php

当然,还有其他方法生成二维码,这里就不一一介绍了。

下面我们说一下在Symfony下使用EndroidQrCodeBundle生成二维码:

1、使用composer安装

复制代码 代码如下:
composer require endroid/qrcode-bundle


2、在kernel中注册

 

?
1
2
3
4
5
6
7
8
9
<?php
// app/AppKernel.php
public function registerBundles()
{
  $bundles = array(
    // ...
    new EndroidBundleQrCodeBundleEndroidQrCodeBundle(),
  );
}

3、定义访问路由

?
1
2
3
4
EndroidQrCodeBundle:
  resource:  "@EndroidQrCodeBundle/Controller/"
  type:    annotation
  prefix:   /qrcode

4、配置 config.xml

?
1
2
3
4
5
6
7
8
9
endroid_qr_code:
  size: 100
  padding: 10
  extension: gif
  error_correction_level: high
  foreground_color: { r: 0, g: 0, b: 0, a: 0 }
  background_color: { r: 255, g: 255, b: 255, a: 0 }
  #label: "My label"
  #labelFontSize: 16

5、在twig中使用

普通文本生成方式:

?
1
2
3
<img src="{{ qrcode_url(message) }}" />
<img src="{{ qrcode_url(message, extension='png') }}" />
<img src="{{ qrcode_url(message, size=150) }}" />

链接生成方式:

复制代码 代码如下:
<img src="{{ qrcode_data_uri(message, size=200, padding=10) }}" />


本文永久地址:http://blog.it985.com/12340.html
本文出自 IT985博客 ,转载时请注明出处及相应链接。

希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。