| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | 
							- <?php
 - 
 - namespace App\Console\Commands;
 - 
 - use App\Http\Services\ConstDef\GeneralConst;
 - use chillerlan\QRCode\QRCode;
 - use chillerlan\QRCode\QROptions;
 - use Illuminate\Console\Command;
 - 
 - class QRGen extends Command
 - {
 -     
 -     protected $signature   = 'qr:gen {--src= : csv path} {--dst= : folder path}';
 -     protected $description = 'batch generate qrcode';
 -     
 -     public function __construct()
 -     {
 -         parent::__construct();
 -     }
 -     
 -     /**
 -      * 脚本入口
 -      */
 -     public function handle()
 -     {
 -         $src = $this->option('src');
 -         $dst = $this->option('dst');
 -         $cnt = [];
 -         if (($handle = fopen($src, "r")) !== false) {
 -             while (($data = fgetcsv($handle, 2000, ",")) !== false) {
 -                 // 變數整理
 -                 $folder_name = $data[0] ?? '未命名';
 -                 $url = $data[1] ?? 'https://www.google.com';
 -                 $path = $dst . '/' . $folder_name;
 -                 // 創建資料夾
 -                 if (!file_exists($path)) mkdir($path, 0777, true);
 -                 // 檔名生成
 -                 $cnt[ $folder_name ] = (!isset($cnt[ $folder_name ])) ? 1 : $cnt[ $folder_name ] + 1;
 -                 $file_name = $folder_name . str_pad($cnt[ $folder_name ], 6, '0', STR_PAD_LEFT) . '.png';
 -                 // QRCODE 檔案生成
 -                 $options = new QROptions([
 -                     'version'     => 5,
 -                     'outputType'  => QRCode::OUTPUT_IMAGE_PNG,
 -                     'imageBase64' => false,
 -                 ]);
 -                 $myfile = fopen($path . '/' . $file_name, "w");
 -                 fwrite($myfile, (new QRCode($options))->render($url));
 -                 fclose($myfile);
 -             }
 -             fclose($handle);
 -         }
 -     }
 -     
 - }
 
 
  |