where("tmId".$tmId)->find();">
当前位置:Gxlcms > PHP教程 > thinkphp二维码生成如何输出到模板文件

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

时间:2021-07-01 10:21:17 帮助过:3人阅读

直接看代码

这是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();    
                        

这是模板里的代码



二维码


但是输出来的结果是这样的 如下:

哪里出现问题了呢??

回复内容:

直接看代码

这是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();    
                        

这是模板里的代码



二维码


但是输出来的结果是这样的 如下:

哪里出现问题了呢??

把最后一句 $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 看

不如你使用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);
}

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

public function action1()
{
    $this->display();
}
public function action2()
{
    ......
    ......
    QRcode::png($text,$QR, $level, $size,$padding);
}
模板里面:

然后访问action1,就可以了

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

人气教程排行