使用方法参照 http://www.cnblogs.com/txw1958/p/phpqrcode.html
HP 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表示是否保存二维码并显示。 通过把PHP二维码生成类库上传sinaapp中,发现在生成二维码时,由于受sinaapp权限限制总是出错,后经把生成的二维码缓存中数据上传到storage中,然后再在网页中来显示,终于搞定了。修改源码如下:
qrimage.php
//----------------------------------------------------------------------
public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE)
{
$image = self::image($frame, $pixelPerPoint, $outerFrame);
if ($filename === false) {
/*-----------------生成二维码图片thumb.png并上传到stroage存放-------------*/
global $savepath; //全局变量用于保存生成时间的文件名
// $savepath= date("Y-m-d H:i:s",time()).".png";
$savepath= date('YmdHis').rand(100,999).".png";
$s = new SaeStorage();
ob_start();
ImagePng($image);
$imgstr = ob_get_contents();
$s->write('file',$savepath,$imgstr);
ob_end_clean();
// echo $savepath;
/*------------------------------------------------------------------------*/
// Header("Content-type: image/png");
// ImagePng($image);
} else {
if($saveandprint===TRUE){
// ImagePng($image, $filename);
//----------------------------------------------------------------*/
$s = new SaeStorage();
ob_start();
ImagePng($image);
$imgstr = ob_get_contents();
$s->write('file',$filename,$imgstr);
ob_end_clean();
// echo $filename;
//-------------------------------------------------------*/
// header("Content-type: image/png");
// ImagePng($image);
}else{
// ImagePng($image, $filename);
// ---------------------------------------------------------
$s = new SaeStorage();
ob_start();
ImagePng($image);
$imgstr = ob_get_contents();
$s->write('file',$filename,$imgstr);
ob_end_clean();
// echo $filename."uv";
//--------------------------------------------------------------
}
}
ImageDestroy($image);
}
ewm01.php源码
<?php
include('./phpqrcode/qrlib.php');
include('./phpqrcode/qrconfig.php');
// 禁用缓存
// header("Expires: -1");
// header("Cache-Control: no-cache");
// header("Pramga: no-cache");
$pic = "http://soaker-file.stor.sinaapp.com/" ;
//$path = SAE_TMP_PATH.'010_merged.png' ;
echo "<br/>";
echo "二维码应用实际例子1:</BR>";
QRcode::png('http://www.sohu.com');
echo '<img src="http://c.51hei.com/a/a/c/512221229689886.jpg"color:#c82829">$pic.$savepath.'" />'; // qrimage.php->$savepath //全局变量用于保存生成时间的文件名
echo "<br/>它被保存到storage中,其文件名是$savepath";
echo "<br/>";
echo "<br/>";
echo "二维码应用实际例子2:</BR>";
QRcode::png("hello world,welcome to china", '00003.png','Q',4,TRUE);
echo '<img src="http://c.51hei.com/a/a/c/512221229687326.jpg"color:#c82829">$pic."00003.png".'" />';
echo '<br/>';
echo "<br/>";
echo "写数据到storage中应用实际例子3:<br/><br/>";
#http://lazy.changes.com.cn/html/336.html
$stor = new SaeStorage();
$domain = 'file';//我刚创建的storage domain的名称
$filename = 'soaker.txt';
$content = 'hello soaker ,此内容被程序自动写入到storage里永久保存';
$stor->write( $domain , $filename , $content );
echo($stor->read( $domain , $filename));//获取文件的内容
echo '<br>';
echo($stor->getUrl($domain,$filename));//获取文件的绝对地址
echo "<br/><a href=".$stor->getUrl($domain,$filename).">".$stor->getUrl($domain,$filename)."</a>";
?>
效果显示:查看
|