一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php生成二維碼不保存服務器還有下載功能的實現代碼

php生成二維碼不保存服務器還有下載功能的實現代碼

2019-09-14 21:26PHP小白iiiiiiiiii PHP教程

這篇文章主要介紹了php生成二維碼不保存服務器還有下載功能的實現代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

有個大坑:在phpqrcode類里QRimage::png會重新定義header為header('content-type : img/png')

此header頭解析不了html代碼,所以在返回完后直接是一張二維碼別的代碼起不了任何作用,所以要返回完之后再重新聲明一下header為header('Content-Type:text/html;charset=utf-8');,我在下邊代碼中聲名過了,標紅的就是

1.引入phpqrcode類(php操作二維碼類)

2.調用encodePNG方法

3.修改encodePNG方法( 加入ob緩存,返回)base64加密后的圖片流

4.將加密后的圖片流返回給前端

5.前端通過img標簽輸出

6.下載功能:超鏈接直接加上 download="圖片名稱"

調用phpqrcode代碼如下

/**
 * 活動二維碼生成
 * @param $text 參數$text表示生成二位的的信息文本;
 * @param $outfile 參數$outfile表示是否輸出二維碼圖片 文件,默認否;
 * @param string $level 參數$level表示容錯率,也就是有被覆蓋的區域還能識別,分別是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
 * @param int $size 參數$size表示生成圖片大小,默認是3;參數$margin表示二維碼周圍邊框空白區域間距值;
 * @param int $margin
 * @param bool $saveandprint 參數$saveandprint表示是否保存二維碼并顯示。
 */
include_once(ROOT_PATH . '/protected/components/phpqrcode.php');
$link = LinkUrlHelper::getUrl(Yii::app()->user->eid,'ACTIVE_DETAIL',$id);
$h5Url = $link['h5'];
$baseImg = QRimage::encodePNG($h5Url,false);
$this->renderPartial('training_code',['img'=>$baseImg]);

修改后的encodePNG方法

public function encodePNG($intext, $outfile = false,$saveandprint=false) 
{
  try {
    ob_start();
    $tab = $this->encode($intext);
    $err = ob_get_contents();
    ob_end_clean();
    if ($err != '')
      QRtools::log($outfile, $err);
    $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
    ob_start();//開啟ob緩存
    QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
    $imageString = base64_encode(ob_get_contents());//將圖片流存入緩存并加密賦值給變量
    ob_end_clean();//清楚ob緩存
    header('Content-Type:text/html;charset=utf-8');// QRimage::png 會覆蓋此header頭,所以要重新聲明一下,否則解析不了html代碼。
    return "data:image/png;base64,".$imageString;//返回拼接好的串
  } catch (Exception $e) {
    QRtools::log($outfile, $e->getMessage());
  }
}

總結

以上所述是小編給大家介紹的php生成二維碼不保存服務器還有下載功能的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色综合久久夜色精品国产 | 草莓在深夜释放自己软件 | 我与肥熟老妇的性事 | 国产精品麻豆免费版 | 手机在线免费观看视频 | 村上里沙40分钟在线观看 | 女女性恋爱免费 | 日本动漫啪啪动画片mv | 亚洲伦理影院 | 变态 另类 人妖小说 | 亚洲男人精品 | 国产精品久久99 | 美女扒开粉嫩尿口漫画 | 国产美女操 | 粗了大了 整进去好爽视频 刺激一区仑乱 | 北岛玲在线播放 | 国产成人精品一区二区阿娇陈冠希 | pron在线观看 | 欧美高清日韩 | ass日本乱妇ass | 日本老妇成熟 | 91夜色视频| 成人免费网站视频ww | 国产精品久久国产精品99盘 | 99久久成人 | 免费lulu网站| 国产黄频在线观看 | 日本中文字幕高清 | 女仆色永久免费网站 | 久草热8精品视频在线观看 久草草在线视视频 | 免费黄色网站视频 | 免费看又黄又爽又猛的视频软件- | 欧美洲大黑香蕉在线视频 | 亚洲美女人黄网成人女 | 国产成人精品曰本亚洲77美色 | chinese踩踏调教vk | 成人免费毛片一区二区三区 | 亚洲国产精品久久卡一 | 国产成人福利色视频 | 扒开腿开嫩苞 | 女人爽到喷水的视频免费看 |