找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3610|回复: 0
收起左侧

使用PHP QR Code生成二维码

[复制链接]
ID:100029 发表于 2015-12-22 20:06 | 显示全部楼层 |阅读模式
使用方法参照 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>";


?>



效果显示:查看





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表