亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php實現生成帶二維碼圖片并強制下載功能

2024-05-05 00:02:30
字體:
來源:轉載
供稿:網友

本文主要和大家分享php/46446.html">php生成帶二維碼圖片并強制下載實現代碼,希望能幫助到大家實現一個自己的二維碼。

/* 下載二維碼 */ public function 測試(){  // 接收傳遞的參數  $data['keys'] = [ 'b01id'=>trim(I('get.b01id')),       'b02id'=>trim(I('get.b02id')),       'b03id'=>trim(I('get.b03id')),       'brid'=>trim(I('get.brid')),       'unicon'=>trim(I('get.unicon'))];  if(empty($data['keys']['b01id'])) $this->error('商戶不存在',U('Seller/index'),3);  $res = D('Sellerbrcode')->download($data); //方法在下面  if(!is_array($res)) $this->error($res,U('Seller/index'),3);  if(!empty($res['error'])) $this->error($res['error'],U('Seller/seebrcode?'.$res['url']),3);  // 制作掃碼牌  $bgimg = imagecreatefromstring(file_get_contents($res['bgimg'])); // 拿到背景圖做畫布  import('Component/phpqrcode',APP_PATH,'.php');  // 引入二維碼生成類  // 如果有掃碼123二維碼,則生成掃碼123二維碼  if('' != $res['codea']){   /* 參數說明:    * 參數1:二維碼需要保持的值    * 參數2:false代表直接輸出,其他則是生成的文件名    * 參數3:糾錯級別:L、M、Q、H    * 參數4:點的大小,數值越大圖片越大    * */   /QRcode::png($res['codea'], $res['codeimg'], 'H', 18);   /* 使用圖片縮放方法   bool imagecopyresized($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h)     dst_im 目標圖像鏈接的資源。     src_im 源圖像鏈接的資源。     dst_x X坐標的目的地。     dst_y y坐標目的地。     src_x X坐標的源點。     src_y y坐標源點。     dst_w 目的地寬度。     dst_h 目標高度。     src_w 源寬度。     src_h 源高度。    * */   $codeimg = imagecreatefromstring(file_get_contents($res['codeimg'])); // 拿到二維碼圖片   $bg_info = getimagesize($res['codeimg']);        // 得到原二維碼圖片的大小   imagecopyresized($bgimg,$codeimg,1520,550,0,70,700,666,$bg_info[0],$bg_info[1]-36);  }  // 如果存在銀聯云閃付二維碼,則生成銀聯云閃付二維碼圖片  if('' != $res['codeb']){   /QRcode::png($res['codeb'], $res['paycodeimg'], 'H', 18);   $codeimg = imagecreatefromstring(file_get_contents($res['paycodeimg']));// 拿到二維碼圖片   $bg_info = getimagesize($res['paycodeimg']);       // 得到原二維碼圖片的大小   imagecopyresized($bgimg,$codeimg,236,536,0,80,750,670,$bg_info[0],$bg_info[1]-80);  }  // 如果存在商戶推廣二維碼,則生成商戶推廣二維碼圖片  if('' != $res['codec']){   /QRcode::png($res['codec'], $res['bridimg'], 'H', 18);   $codeimg = imagecreatefromstring(file_get_contents($res['bridimg'])); // 拿到二維碼圖片   $bg_info = getimagesize($res['bridimg']);        // 得到原二維碼圖片的大小   imagecopyresized($bgimg,$codeimg,1375,1288,0,0,230,230,$bg_info[0],$bg_info[1]);  }  // 如果存在商戶名稱  if('' != $res['bName']){   // 為了讓文字居中,需要計算左偏移量   preg_match_all("/[0-9]{1}/",$res['bName'],$len1);     // 得到字符串中的字數量   preg_match_all("/[a-zA-Z]{1}/",$res['bName'],$len2);    // 得到字符串中的字母數量   preg_match_all("/([/x{4e00}-/x{9fa5}]){1}/u",$res['bName'],$len3); // 得到字符串中的中文數量   $left = 610 - (count($len1[0]) * 16) - (count($len2[0]) * 15) - (count($len3[0]) * 28);   $res['filename'] .= '_' . $res['bName'];       // 追加二維碼名稱   $black = imagecolorallocate($bgimg, 0x20, 0x57, 0xa0);    // 字體顏色   imagefttext($bgimg, 42, 0, $left, 480, $black,'./Public/font/msyh.ttf',$res['bName']);  }  // 如果存在二維碼編號,則寫入二維碼編號  if('' != $res['brid']){   $black = imagecolorallocate($bgimg, 0x3e, 0x75, 0xc7);    //字體顏色   imagefttext($bgimg, 30, 0, 1720,1190, $black,'./Public/font/msyh.ttf',$res['brid']);  }  // 添加銀聯云閃付logo  $codeimg = imagecreatefromstring(file_get_contents($res['union']));  // 拿到二維碼圖片  $bg_info = getimagesize($res['union']);         // 得到原logo圖片的大小  imagecopyresized($bgimg,$codeimg,550,760,0,0,120,120*$bg_info[1]/$bg_info[0],$bg_info[0],$bg_info[1]);  // 添加添加掃碼123logo  $codeimg = imagecreatefromstring(file_get_contents($res['logo']));  // 拿到二維碼圖片  $bg_info = getimagesize($res['logo']);         // 得到原logo圖片的大小  imagecopyresized($bgimg,$codeimg,1805,770,0,0,120,120*$bg_info[1]/$bg_info[0],$bg_info[0],$bg_info[1]);  $res['filename'] .= '_' . date('Y-m-d',time()) . '.png';    // 追加二維碼名稱  header('Pragma: public'); // required  header('Expires: 0');  // no cache  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  header('Cache-Control: private',false);  header('Content-Type: application/force-download');  header('Content-Disposition: attachment; filename="'.$res['filename'].'"');  header('Content-Transfer-Encoding: binary');  header('Connection: close');  imagepng($bgimg); }/* 生成圖片前 拼接數據 */public function download($data){$tool = D('Tool');// 得到公共類$mysql = M();$admin = I('session.admin');/* 拼接url,方便以下錯誤時,跳轉使用 */$show['url'] = 'b01id='.$data['keys']['b01id'];// 如果傳遞了用戶id,那么判斷該用戶是否屬于該商戶if($data['keys']['b03id'])$show['url'].= '&b03id='.$data['keys']['b03id'];// 如果傳遞了二維碼idif($data['keys']['b02id'])$show['url'].= '&b02id='.$data['keys']['b02id'];// 如果傳遞了銀聯云閃付if($data['keys']['unicon']) $show['url'].= '&unicon='.$data['keys']['unicon'];// 如果傳遞了推廣二維碼if($data['keys']['brid'])$show['url'].= '&brid='.$data['keys']['brid'];// 調用上部方法得到數據$data = $this->seebrcode($data,$tool,$mysql,$admin,false);if(!is_array($data)){ return ['error'=>$data,'url'=>$show['url']]; }/* 得到要展示的數據*/$show['bgimg']= './Public/img/qrcode/qrcode.png';// 背景圖片地址$show['logo']= './Public/img/qrcode/logo.png';// 掃碼123的logo地址$show['union'] = './Public/img/qrcode/unionPay.png';// 銀聯logo地址$show['codeimg']= './Public/img/qrcode/code.png';// 普通二維碼生成的保存地址$show['paycodeimg'] = './Public/img/qrcode/paycode.png';// 銀聯二維碼生成的保存地址$show['bridimg']= './Public/img/qrcode/brid.png';// 商戶推廣二維碼圖片的保存地址$show['filename']= '掃碼123收款二維碼';// 二維碼名稱// 掃碼123二維碼內容$show['codea']= (!$data['keys']['b02id']) ? '' : isset($data['qrcode'][$data['keys']['b02id']]) ? $data['url1'].$data['qrcode'][$data['keys']['b02id']]['brCode'] : '';// 掃碼123二維碼編號$show['brid']= (!$data['keys']['b02id']) ? '' : isset($data['qrcode'][$data['keys']['b02id']]) ? 'NO.'.$data['keys']['b02id'] : '';// 銀聯二維碼$show['codeb']= (!$data['keys']['unicon']) ? '' : isset($data['qrcode'][$data['keys']['unicon']]) ? $data['qrcode'][$data['keys']['unicon']]['brCode'] : '';// 商戶推廣二維碼$show['codec']= (!$data['keys']['brid']) ? '' : isset($data['download'][$data['keys']['brid']]) ? $data['url2'].$data['download'][$data['keys']['brid']]['brCode'] : '';// 商戶名稱$show['bName']= empty($data['seller']['bShortName']) ? (empty($data['seller']['bName']) ? (empty($data['seller']['bCode']) ? $data['seller']['b01id'] : $data['seller']['bCode']) : $data['seller']['bName'] ) : $data['seller']['bShortName'];/* 如果存在舊圖片,則刪除舊圖片 */if(is_file($res['codeimg']))unlink($res['codeimg']);// 刪除舊的掃碼123二維碼圖片if(is_file($res['paycodeimg'])) unlink($res['paycodeimg']); // 刪除舊的銀聯云閃付二維碼圖片if(is_file($res['paycodeimg'])) unlink($res['paycodeimg']); // 刪除舊的商戶推廣二維碼圖片return $show;}

總結

以上所述是小編給大家介紹的php生成帶二維碼圖片并強制下載實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产97人人超碰caoprom| 亚洲国产欧美精品| 久久久www成人免费精品| 欧美精品日韩三级| 精品久久久久久久久久| 91社影院在线观看| 91久久在线视频| 国产精品99久久99久久久二8| 日韩有码在线观看| 久久久免费精品| 欧美最近摘花xxxx摘花| 精品亚洲一区二区三区四区五区| 亚洲视频999| 欧美丝袜第一区| 国产视频精品va久久久久久| 国产精品成人一区二区| 国产欧美亚洲精品| 91深夜福利视频| 美女少妇精品视频| 欧美激情久久久久久| 亚洲精品成人免费| 国产一区二区三区高清在线观看| 精品爽片免费看久久| www.99久久热国产日韩欧美.com| 国产精品视频久久久久| 成人欧美一区二区三区在线| 亚洲一区二区三区成人在线视频精品| 亚洲最大在线视频| 欧美性生交xxxxx久久久| 综合激情国产一区| 国产精品嫩草影院一区二区| 中文字幕亚洲自拍| 国产精品久久久久久久久久三级| 久久在线观看视频| 久久久久久久久91| 国产成人亚洲综合| 隔壁老王国产在线精品| 亚洲人成电影在线| 国产欧美精品日韩| 日本韩国在线不卡| 欧美激情在线有限公司| 亚洲精品成人久久电影| 富二代精品短视频| 欧美日韩一区二区在线播放| 久久久久久成人| 久久久欧美精品| 国产一区二区三区视频在线观看| 欧美激情欧美激情在线五月| 国产成人精品综合| 国产中文欧美精品| 91精品国产九九九久久久亚洲| xvideos亚洲| 一区二区日韩精品| 福利一区福利二区微拍刺激| 国产成人精品av| 欧美电影在线观看网站| 国产欧美在线播放| 欧美自拍大量在线观看| 亚洲国产福利在线| 中文字幕在线视频日韩| 亚洲第一av网| 亚洲一区二区在线| 日韩日本欧美亚洲| 久久精品国产亚洲7777| 欧美激情喷水视频| 欧美日韩精品在线观看| 福利视频一区二区| 日韩在线观看高清| 亚洲天堂av综合网| 精品久久久香蕉免费精品视频| 日韩精品免费观看| 精品在线欧美视频| 亚洲护士老师的毛茸茸最新章节| 久久香蕉国产线看观看av| 午夜精品久久久久久久久久久久久| 亚洲乱码国产乱码精品精| 91爱视频在线| 在线看国产精品| 欧美性生活大片免费观看网址| 亚洲影视中文字幕| 韩国19禁主播vip福利视频| 国产精品久在线观看| 日韩在线观看免费网站| 免费不卡在线观看av| 中文字幕日韩av综合精品| 91精品在线国产| 另类少妇人与禽zozz0性伦| 久久人91精品久久久久久不卡| 51ⅴ精品国产91久久久久久| 日韩欧美在线中文字幕| 久久久亚洲福利精品午夜| 97在线日本国产| 亚洲国产一区二区三区在线观看| 97精品国产aⅴ7777| 国产人妖伪娘一区91| 精品欧美国产一区二区三区| 91成人在线视频| 这里只有精品久久| 久久五月天色综合| 亚洲欧美www| 成人av番号网| 国产精品久久久久aaaa九色| 久久婷婷国产麻豆91天堂| 欧美激情中文字幕乱码免费| 久久久久久久亚洲精品| 国产精品久久在线观看| 国产综合香蕉五月婷在线| 亚洲精品xxx| 日韩av一区二区在线观看| 一区二区三区国产视频| 九九精品视频在线观看| 午夜精品福利电影| 亚洲www在线观看| 国产亚洲欧洲高清一区| 日韩中文字幕在线看| 国产精品高清免费在线观看| 91性高湖久久久久久久久_久久99| 久久久久久久国产| 日韩国产欧美区| 日韩av网址在线| 亚洲毛片在线看| 亚洲专区中文字幕| 久久五月天色综合| 97视频com| 国产精品美女久久| 色综合伊人色综合网站| 精品欧美一区二区三区| 97在线免费观看视频| 日韩欧美在线中文字幕| 激情懂色av一区av二区av| 91精品国产色综合| 日韩av在线影院| 欧美成人午夜激情| 国产欧美va欧美va香蕉在| 日韩中文字幕视频在线观看| 久久久久久久久久久网站| 久久久久久中文字幕| 国产精品第一第二| 国产精品国内视频| 国产成人精品电影久久久| 韩国v欧美v日本v亚洲| 久久精品国产亚洲精品| 日韩精品视频在线免费观看| 51精品在线观看| 一本大道久久加勒比香蕉| 中文字幕不卡在线视频极品| 超碰精品一区二区三区乱码| 最近2019中文免费高清视频观看www99| 91精品国产91久久久| 欧美成人黑人xx视频免费观看| 日韩精品在线免费观看视频| 欧美日本国产在线| 亚洲精品一区在线观看香蕉| 国产91在线视频| 92看片淫黄大片欧美看国产片| 中文字幕视频一区二区在线有码| 正在播放欧美一区| 国产视频亚洲视频| 亚洲最新av网址| 亚洲精品一区二区网址| 91在线观看免费高清| 亚洲高清免费观看高清完整版| 欧美成人午夜激情在线| 国产精品久久999|