<?php
define('QR_MODE_NUL',-1);define('QR_MODE_NUM',0);define('QR_MODE_AN',1);define('QR_MODE_8',2);define('QR_MODE_KANJI',3);define('QR_MODE_STRUCTURE',4);define('QR_ECLEVEL_L',0);define('QR_ECLEVEL_M',1);define('QR_ECLEVEL_Q',2);define('QR_ECLEVEL_H',3);define('QR_FORMAT_TEXT',0);define('QR_FORMAT_PNG',1);class qrstr{public static function set(&$srctab,$x,$y,$repl,$replLen=false){$srctab[$y]=substr_replace($srctab[$y],($replLen!==false)?substr($repl,0,$replLen):$repl,$x,($replLen!==false)?$replLen:strlen($repl));}}define('QR_CACHEABLE',false);define('QR_CACHE_DIR',false);define('QR_LOG_DIR',false);define('QR_FIND_BEST_MASK',true);define('QR_FIND_FROM_RANDOM',2);define('QR_DEFAULT_MASK',2);define('QR_PNG_MAXIMUM_SIZE',1024);class QRtools{public static function binarize($frame){$len=count($frame);foreach($frame as &$frameLine){for($i=0;$i<$len;$i++){$frameLine[$i]=(ord($frameLine[$i])&1)?'1':'0';}}return $frame;}public static function tcpdfBarcodeArray($code,$mode='QR,L',$tcPdfVersion='4.5.037'){$barcode_array=array();if(!is_array($mode))$mode=explode(',',$mode);$eccLevel='L';if(count($mode)>1){$eccLevel=$mode[1];}$qrTab=QRcode::text($code,false,$eccLevel);$size=count($qrTab);$barcode_array['num_rows']=$size;$barcode_array['num_cols']=$size;$barcode_array['bcode']=array();foreach($qrTab as $line){$arrAdd=array();foreach(str_split($line) as $char)$arrAdd[]=($char=='1')?1:0;$barcode_array['bcode'][]=$arrAdd;}return $barcode_array;}public static function clearCache(){self::$frames=array();}public static function buildCache(){QRtools::markTime('before_build_cache');$mask=new QRmask();for($a=1;$a<=QRSPEC_VERSION_MAX;$a++){$frame=QRspec::newFrame($a);if(QR_IMAGE){$fileName=QR_CACHE_DIR.'frame_'.$a.'.png';QRimage::png(self::binarize($frame),$fileName,1,0);}$width=count($frame);$bitMask=array_fill(0,$width,array_fill(0,$width,0));for($maskNo=0;$maskNo<8;$maskNo++)$mask->makeMaskNo($maskNo,$width,$frame,$bitMask,true);}QRtools::markTime('after_build_cache');}public static function log($outfile,$err){if(QR_LOG_DIR!==false){if($err!=''){if($outfile!==false){file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt',date('Y-m-d H:i:s').': '.$err,FILE_APPEND);}else{file_put_contents(QR_LOG_DIR.'errors.txt',date('Y-m-d H:i:s').': '.$err,FILE_APPEND);}}}}public static function dumpMask($frame){$width=count($frame);for($y=0;$y<$width;$y++){for($x=0;$x<$width;$x++){echo ord($frame[$y][$x]).',';}}}public static function markTime($markerId){list($usec,$sec)=explode(" ",microtime());$time=((float)$usec+(float)$sec);if(!isset($GLOBALS['qr_time_bench']))$GLOBALS['qr_time_bench']=array();$GLOBALS['qr_time_bench'][$markerId]=$time;}public static function timeBenchmark(){self::markTime('finish');$lastTime=0;$startTime=0;$p=0;echo '<table cellpadding="3" cellspacing="1"><thead><tr style="border-bottom:1px solid silver"><td colspan="2" style="text-align:center">BENCHMARK</td></tr></thead><tbody>';foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime){if($p>0){echo '<tr><th style="text-align:right">till '.$markerId.': </th><td>'.number_format($thisTime-$lastTime,6).'s</td></tr>';}else{$startTime=$thisTime;}$p++;$lastTime=$thisTime;}echo '</tbody><tfoot><tr style="border-top:2px solid black"><th style="text-align:right">TOTAL: </th><td>'.number_format($lastTime-$startTime,6).'s</td></tr></tfoot></table>';}}QRtools::markTime('start');define('QRSPEC_VERSION_MAX',40);define('QRSPEC_WIDTH_MAX',177);define('QRCAP_WIDTH',0);define('QRCAP_WORDS',1);define('QRCAP_REMINDER',2);define('QRCAP_EC',3);class QRspec{public static $capacity=array(array(0,0,0,array(0,0,0,0)),array(21,26,0,array(7,10,13,17)),array(25,44,7,array(10,16,22,28)),array(29,70,7,array(15,26,36,44)),array(33,100,7,array(20,36,52,64)),array(37,134,7,array(26,48,72,88)),array(41,172,7,array(36,64,96,112)),array(45,196,0,array(40,72,108,130)),array(49,242,0,array(48,88,132,156)),array(53,292,0,array(60,110,160,192)),array(57,346,0,array(72,130,192,224)),array(61,404,0,array(80,150,224,264)),array(65,466,0,array(96,176,260,308)),array(69,532,0,array(104,198,288,352)),array(73,581,3,array(120,216,320,384)),array(77,655,3,array(132,240,360,432)),array(81,733,3,array(144,280,408,480)),array(85,815,3,array(168,308,448,532)),array(89,901,3,array(180,338,504,588)),array(93,991,3,array(196,364,546,650)),array(97,1085,3,array(224,416,600,700)),array(101,1156,4,array(224,442,644,750)),array(105,1258,4,array(252,476,690,816)),array(109,1364,4,array(270,504,750,900)),array(113,1474,4,array(300,560,810,960)),array(117,1588,4,array(312,588,870,1050)),array(121,1706,4,array(336,644,952,1110)),array(125,1828,4,array(360,700,1020,1200)),array(129,1921,3,array(390,728,1050,1260)),array(133,2051,3,array(420,784,1140,1350)),array(137,2185,3,array(450,812,1200,1440)),array(141,2323,3,array(480,868,1290,1530)),array(145,2465,3,array(510,924,1350,1620)),array(149,2611,3,array(540,980,1440,1710)),array(153,2761,3,array(570,1036,1530,1800)),array(157,2876,0,array(570,1064,1590,1890)),array(161,3034,0,array(600,1120,1680,1980)),array(165,3196,0,array(630,1204,1770,2100)),array(169,3362,0,array(660,1260,1860,2220)),array(173,3532,0,array(720,1316,1950,2310)),array(177,3706,0,array(750,1372,2040,2430)));public static function getDataLength($version,$level){return self::$capacity[$version][QRCAP_WORDS]-self::$capacity[$version][QRCAP_EC][$level];}public static function getECCLength($version,$level){return self::$capacity[$version][QRCAP_EC][$level];}public static function getWidth($version){return self::$capacity[$version][QRCAP_WIDTH];}public static function getRemainder($version){return self::$capacity[$version][QRCAP_REMINDER];}public static function getMinimumVersion($size,$level){for($i=1;$i<= QRSPEC_VERSION_MAX;$i++){$words=self::$capacity[$i][QRCAP_WORDS]-self::$capacity[$i][QRCAP_EC][$level];if($words>=$size)return $i;}return -1;}public static $lengthTableBits=array(array(10,12,14),array(9,11,13),array(8,16,16),array(8,10,12));public static function lengthIndicator($mode,$version){if($mode==QR_MODE_STRUCTURE)return 0;if($version<=9){$l=0;}else if($version<=26){$l=1;}else{$l=2;}return self::$lengthTableBits[$mode][$l];}public static function maximumWords($mode,$version){if($mode==QR_MODE_STRUCTURE)return 3;if($version<=9){$l=0;}else if($version<=26){$l=1;}else{$l=2;}$bits=self::$lengthTableBits[$mode][$l];$words=(1<<$bits)-1;if($mode==QR_MODE_KANJI){$words*=2;}return $words;}public static $eccTable=array(array(array(0,0),array(0,0),array(0,0),array(0,0)),array(array(1,0),array(1,0),array(1,0),array(1,0)),array(array(1,0),array(1,0),array(1,0),array(1,0)),array(array(1,0),array(1,0),array(2,0),array(2,0)),array(array(1,0),array(2,0),array(2,0),array(4,0)),array(array(1,0),array(2,0),array(2,2),array(2,2)),array(array(2,0),array(4,0),array(4,0),array(4,0)),array(array(2,0),array(4,0),array(2,4),array(4,1)),array(array(2,0),array(2,2),array(4,2),array(4,2)),array(array(2,0),array(3,2),array(4,4),array(4,4)),array(array(2,2),array(4,1),array(6,2),array(6,2)),array(array(4,0),array(1,4),array(4,4),array(3,8)),array(array(2,2),array(6,2),array(4,6),array(7,4)),array(array(4,0),array(8,1),array(8,4),array(12,4)),array(array(3,1),array(4,5),array(11,5),array(11,5)),array(array(5,1),array(5,5),array(5,7),array(11,7)),array(array(5,1),array(7,3),array(15,2),array(3,13)),array(array(1,5),array(10,1),array(1,15),array(2,17)),array(array(5,1),array(9,4),array(17,1),array(2,19)),array(array(3,4),array(3,11),array(17,4),array(9,16)),array(array(3,5),array(3,13),array(15,5),array(15,10)),array(array(4,4),array(17,0),array(17,6),array(19,6)),array(array(2,7),array(17,0),array(7,16),array(34,0)),array(array(4,5),array(4,14),array(11,14),array(16,14)),array(array(6,4),array(6,14),array(11,16),array(30,2)),array(array(8,4),array(8,13),array(7,22),array(22,13)),array(array(10,2),array(19,4),array(28,6),array(33,4)),array(array(8,4),array(22,3),array(8,26),array(12,28)),array(array(3,10),array(3,23),array(4,31),array(11,31)),array(array(7,7),array(21,7),arra
没有合适的资源?快使用搜索试试~ 我知道了~
金微新零售智能收银工具 v1.0.2
共20个文件
php:7个
png:6个
mp3:3个
0 下载量 23 浏览量
2023-04-20
15:29:35
上传
评论
收藏 264KB ZIP 举报
温馨提示
金微新零售智能收银工具是专为中小型商超及社区便利店设计的扫码收银工具,商家使用一台可以上网的普通电脑即可实现超市收银机的主要功能。 系统支持使用扫码枪扫描商品条码自动识别商品信息,自动计算总价。 系统已整合微信、支付宝支付接口,支持正扫(顾客扫描商家动态二维码)和反扫(商家扫描顾客动态收款码)支付模式。 系统自带网上超市功能,生成超市二维码分发给顾客即可让顾客在家躺购!
资源推荐
资源详情
资源评论
收起资源包目录
xlsznsygj.zip (20个子文件)
xlsznsygj
Gb
custom.php 24KB
readme.htm 8KB
config.php 3KB
qrcode.php 50KB
从这联系我.jpg 59KB
admin.php 32KB
printo.php 1KB
index.php 34KB
manage.php 22KB
images
data
logo.png 2KB
favi.png 2KB
从这联系我.jpg 59KB
cart.png 873B
alt0.mp3 9KB
alt1.mp3 7KB
back.png 1KB
alts.mp3 73KB
json
icow.png 710B
icoz.png 997B
data.sql 2KB
共 20 条
- 1
资源评论
网创学长
- 粉丝: 2035
- 资源: 914
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功