直接看代码
这是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); } 模板里面: <img src="{:U('action2')}" />
然后访问action1,就可以了
生成单独一个方法,然后用img标签的src 去访问这个方法,