PHP生成二维码

来源:互联网 发布:parrot无人机软件 编辑:程序博客网 时间:2024/06/05 05:05
调用:        
$save_path = './Uploads/QRcode/';
        $web_path = '/Uploads/QRcode/';
//         $currentUrl = "http://".$_SERVER["HTTP_HOST"].(($_SERVER["SERVER_PORT"]==="80")?"":$_SERVER["SERVER_PORT"]).$_SERVER["REQUEST_URI"];
        $currentUrl = 'http://'.$_SERVER["HTTP_HOST"].U('signin').'?mid='.$mid.'&uid='.$uid;
        $qr_data = $currentUrl;
        $qr_level = 'H';
        $qr_size = 20;
        $save_prefix = 'sign';
//         dump($save_path);exit;
        if($filename = createQRcode($save_path,$qr_data,$qr_level,$qr_size,$save_prefix))
        {
            $code = $web_path.$filename;
        }
加载的扩展类请到 php二维码生成 : https://pan.baidu.com/s/1c22JwdE
/**
 * 功能:生成二维码
 *@paramstring $qr_data   手机扫描后要跳转的网址
 *@paramstring $qr_level  默认纠错比例 分为L、M、Q、H四个等级,H代表最高纠错能力
 *@paramstring $qr_size   二维码图大小,1-10可选,数字越大图片尺寸越大
 *@paramstring $save_path 图片存储路径
 *@paramstring $save_prefix 图片名称前缀
 */
functioncreateQRcode($save_path,$qr_data='PHP QR Code :)',$qr_level='L',$qr_size=4,$save_prefix='qrcode'){
    if(!isset($save_path))return'';
    //设置生成png图片的路径
    $PNG_TEMP_DIR = & $save_path;
    //导入二维码核心程序
    vendor('PHPQRcode.class#phpqrcode'); //注意这里的大小写哦,不然会出现找不到类,PHPQRcode是文件夹名字,class#phpqrcode就代表class.phpqrcode.php文件名
    //检测并创建生成文件夹
    if(!file_exists($PNG_TEMP_DIR)){
         mkdir($PNG_TEMP_DIR);
    }
    $filename = $PNG_TEMP_DIR;
    $errorCorrectionLevel ='L';
    if(isset($qr_level) && in_array($qr_level, array('L','M','Q','H'))){
         $errorCorrectionLevel = & $qr_level;
    }
    $matrixPointSize = 4;
    if(isset($qr_size)){
         $matrixPointSize = & min(max((int)$qr_size, 1), 10);
    }
    if(isset($qr_data)) {
         if(trim($qr_data) ==''){
             die('data cannot be empty!');
         }
         //生成文件名 文件路径+图片名字前缀+md5(名称)+.png
         $filename = $PNG_TEMP_DIR.$save_prefix.md5($qr_data.'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
         //开始生成
         QRcode::png($qr_data, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
    }else{
         //默认生成
         QRcode::png('PHP QR Code :)', $filename, $errorCorrectionLevel, $matrixPointSize, 2);
    }
//       dump($filename);exit;
    if(file_exists($PNG_TEMP_DIR.basename($filename)))
         returnbasename($filename);
    else
         return FALSE;
}
原创粉丝点击