这个是什么错生成1W个二维码报错,1千个就没报错

浏览:345 发布日期:2020/08/23 分类:ThinkPHP6专区
<?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();
    }
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>