
<?php
namespace app\controller;
use app\model\Qrcode as QrcodeModel;
use Endroid\QrCode\QrCode as Qr;
class QrCode
{
public function add($num)
{
ini_set('max_execution_time', '0');
ini_set("memory_limit","-1");
$model = new QrcodeModel();
$list = [];
for ($i=0; $i<$num; $i++){
$data = $this->createQrcode();
$data['created'] = time();
array_push($list,$data);
}
echo $model->saveAll($list);
}
//创建二维码
public function createQrcode()
{
//二维码内容
$code = str_replace(".","-", uniqid("", true));
//生成二维码
$qrCode = new Qr($code);
$savrDir = $this->getQrcodeDir().'/'.$code.'.png';
header('Content-Type: '.$qrCode->getContentType());
//保存二维码文件
$qrCode->writeFile($savrDir);
$dataUri = $qrCode->writeDataUri();
$data['code'] = $code;
$data['savrDir'] = $savrDir;
return $data;
}
/**
* 返回保存二维码的路径
* @return string 保存文件的路径
*/
public function getQrcodeDir()
{
$dirn = getdirnum("./qrcode",'dir');
if($dirn == 0){
$dirn = 1;
mkdir("./qrcode/".$dirn);
}
$dirFileNum = scandir("./qrcode/".$dirn);
if( count($dirFileNum)-2 < 1000 ){
return "./qrcode/".$dirn;
}else{
$newDir = "./qrcode/".($dirn+1);
if(mkdir($newDir)){
return $newDir;
}
}
}
public function demo(){
phpinfo();
}
} 最佳答案