首页 > thinkphp二维码生成如何输出到模板文件

thinkphp二维码生成如何输出到模板文件

直接看代码

这是thinkphp里的代码 生成二维码

$model=M("member");
                        $rs=$model->where("tmId".$tmId)->find();
                        //生成二维码
                        vendor("phpqrcode.phpqrcode");
                        $path='public/qrcode/';
                        mkdir($path);
                        $QR=$path.'qrcode.png';
                        $text="http://www.xghm.com.cn/index.php/Login/reg/tmTel/".$rs['tmTel'];
                        $size='4';
                        $level='L';
                        $padding=2;
                        $logo=false;
                        QRcode::png($text,$QR, $level, $size,$padding);
                        $this->display();    
                        

这是模板里的代码

<body>
<div class="img">
<img alt="二维码" src="__APP__/Rec/recommend">
</div>
</body>
但是输出来的结果是这样的 如下:

哪里出现问题了呢??


不如你使用phpqrcode这个插件去生成二维码

public function qrcode($text='https://www.baidu.com',$level=3,$size=4){
    $text=$this->$_get['text']?$this->$_get['text']:$text;
    $size=$this->$_get['size']?$this->$_get['size']:$size;
    $level=$this->$_get['level']?$this->$_get['level']:$level;
    Vendor('phpqrcode.phpqrcode');
    $object = new \QRcode();
    $object->png($text, false, $level, $size, 2);
}

生成单独一个方法,然后用img标签的src 去访问这个方法,


楼主似乎是混了。
首先是二维码,需要一个独立的action。
显示界面,是另外一个action
比如:

public function action1()
{
    $this->display();
}
public function action2()
{
    ......
    ......
    QRcode::png($text,$QR, $level, $size,$padding);
}
模板里面:
<img src="{:U('action2')}" />

然后访问action1,就可以了


把最后一句 $this->display(); 去掉,最好在图片生成前加上ob_clean()
正好我的代码中也有一个类似方法

public function qrcode($guid) {
        vendor("phpqrcode.phpqrcode");
        //$data = "http://www.baidu.com";
        $url="http://".$_SERVER['HTTP_HOST'].U('Urlhandle/show',array('guid'=>$guid),$domin=true);
        $level = 'L';

        $size = 8;
        ob_clean();

        \QRcode::png($url,false,$level,$size);
    }

效果你可以去 http://www.wx2share.com 看

【热门文章】
【热门文章】