源代码有一个BUG,导致二维码不能同时保存并输出,大致在3093行,源代码为
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);
}
这里$saveandprint已经被png函数给予默认值了,这里传值时候再给默认值会导致它永远接受的值是false,所以要去掉=false才行.
<?php include 'phpqrcode.php'; $url = 'http://www.baidu.com/'; $error_level = 'L'; $size = 10; /* 其中参数$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表示是否保存二维码并显示。 png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) */ /** *phpqrecode输出二维码图片 *@text 就是上面代码里的URL网址参数, *@outfile 默认为否,不生成文件,只将二维码图片返回,否则需要给出存放生成二维码图片的路径 *@level 默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比。 *@size 默认为3,控制生成图片的大小 *@margin 默认为4,控制生成二维码的空白区域大小 *@saveandprint 默认为false,保存二维码图片并显示出来,$outfile必须传递图片路径。 */ QRcode::png($url,'recode.png',$error_level,$size,0,true); ?>