用PHP QR Code生成当前网址二维码

随着移动网络的发展,现在很多网站都有二维码显示,以方便手机用户扫描后通过手机浏览当前网址,影子最近一个网站也有此需求,就在网站添加了用PHP QR Code生成当前网址二维码的小功能,下面分享一下。

说明:网上有用js和谷歌api生成二维码的方法,因js浏览器兼容性不好,谷歌api连通率不好,所以影子未采用。


===

PHP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:http://phpqrcode.sourceforge.net/。
下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。 phpqrcode.php提供了一个关键的png()方法,其中参数$text表示生成二位的的信息文本;参数$outfile表示是否输出二维码图片 文件,默认否;参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); 参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;参数$saveandprint表示是否保存二维码并 显示。
. 代码如下:

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);
}
调用PHP QR Code非常简单,如下代码即可生成一张内容为"http://www.8119.org/html/123/"的二维码.

include 'phpqrcode.php';
QRcode::png('http://www.8119.org/html/123/');
===

此段话引用自http://www.cnblogs.com/txw1958/p/phpqrcode.html,以方便大家理解我下面的代码。

下面贴出来用PHP QR Code生成当前网址二维码的代码。

< ?php 
    include "qrcode/qrcode.php"; 
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
$burl = strstr( $url,'qr.php');
$qurl = strstr( strstr( $url, '?url='), 'http');
if ($burl !== "qr.php?" and strpos($burl,'?url=http://') !== false) {
  $value=$qurl;
}
else {
  $value = "http://blog.menglei.net/";
}
    $errorCorrectionLevel = "L"; 
    $matrixPointSize = "8"; 
	$margin="1";
    QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize,$margin); 
	echo $burl;
    exit; 
?>

保存为qr.php文件,此段代码是先获取链接网址,然后通过网址进行处理,获取对应的。

使用方法:

在需调用的网页或模板中添加类似以下代码即可:


其中?url=后面的网址即是当前网址,根据不用的程序,自行调用即可。

如果是直接获致当前网址进行二维码生成,则可以使用以下代码。

< ?php
include “phpqrcode/phpqrcode.php”;
$value = ‘http://’.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].’?’.$_SERVER['QUERY_STRING'];
$errorCorrectionLevel = “L”;
$matrixPointSize = “8″;
$margin=”1″;
QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize,$margin);
exit;
?>

这段代码仅支持php文件,请知悉。

也可以使用以下js代码来实现


以上即是用PHP QR Code生成当前网址二维码的全部内容,如有疑问,请留言或咨询QQ925474725