利用phpqrcode生成二維碼

jopen 10年前發布 | 54K 次閱讀 二維碼 條形碼/二維碼開發包

完整下載地址:http://pan.baidu.com/s/1mgMoxfE

根據phpqrcode官方原版修改

主要增加了兩個文件

api.php function.php

api.php可以參考get參數的形式生成二維碼.

function.php 是簡單封裝的函數便于調用

<?php
header("content-Type: text/html; charset=utf-8");
$data =getdata('data');if(empty($data)){
   $str="參數說明<br />
   data:要轉碼的數據<br />
   level:默認L 糾錯級別:L、M、Q、H<br />
   size:默認4 點的大小:1到10,用于手機端4就可以了 <br />
   margin:默認1 邊距 1到10 <br />
   logo:默認為空 中間logo 的文件名需要放到logo/目錄中 <br /> 
   filename:默認為空 生成的文件名 生成后放到temp/目錄中 <br />
   ";echo $str;exit;       
}
$level =getdata('level','L');// 糾錯級別:L、M、Q、H    
$size =getdata('size','4');;// 4;// 點的大小:1到10,用于手機端4就可以了
// 下面注釋了把二維碼圖片保存到本地的代碼,如果要保存圖片,用$fileName替換第二個參數false
$path = 'temp/';
$margin =getdata('margin','1');//邊距
$logo = getdata('logo');;//logo
$filename=getdata('filename');// 生成的文件名
if(!empty($filename)){$filename = $path.$filename.'_'.$size.'.png';
}else{$filename=false;}
if(!empty($logo) && empty($filename)){$filename = $path.$logo.'_'.$size.'.png';}$QR=false;
if(!empty($filename)){$QR=$path.basename($filename);}
include "qrlib.php";
$QRcode = new QRcode();
$QRcode->png($data,$QR,$level,$size,$margin);
if($logo){
    if(strpos($logo,'http://')===false)$logo='logo/'.$logo;
    $QR = imagecreatefromstring(file_get_contents($QR));
    $logo = imagecreatefromstring(file_get_contents($logo));
    $QR_width = imagesx($QR);
    $QR_height = imagesy($QR);
    $logo_width = imagesx($logo);
    $logo_height = imagesy($logo);
    $logo_qr_width = $QR_width /5;
    $scale = $logo_width / $logo_qr_width;
    $logo_qr_height = $logo_height / $scale;
    $from_width = ($QR_width - $logo_qr_width) / 2;
    imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
    header("Content-Type:image/jpg");
    imagepng($QR);exit;
}
if(!empty($filename))return $filename;
function getdata($name,$default=''){
$getdata=$_GET;
return empty($getdata[$name])?$default:$getdata[$name];
}
?>

function gen_qrcode($str,$size = 5)
{
    include "qrlib.php";
    $root_dir = 'temp/';
     if (!is_dir($root_dir)) {@mkdir($root_dir);@chmod($root_dir, 0777);}
    $filename = md5($str."|".$size);
    $filesave = $root_dir.$filename.'.png';
    if(!file_exists($filesave)){QRcode::png($str, $filesave, 'Q', $size, 2);}
    return $root_dir.$filename.".png";
}

來自:http://my.oschina.net/xiaogg/blog/507534

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!