search

Home  >  Q&A  >  body text

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>
<p class="img">
<img alt="二维码" src="__APP__/Rec/recommend">
</p>
</body>
但是输出来的结果是这样的 如下:

哪里出现问题了呢??

大家讲道理大家讲道理2896 days ago412

reply all(4)I'll reply

  • 高洛峰

    高洛峰2017-04-10 17:32:11

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 17:32:11

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

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 17:32:11

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

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

    然后访问action1,就可以了

    reply
    0
  • PHPz

    PHPz2017-04-10 17:32:11

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

    reply
    0
  • Cancelreply