From 9d042029231e604bcce2a38649ab1125603b1f39 Mon Sep 17 00:00:00 2001 From: Alone <675061370@qq.com> Date: Wed, 10 Apr 2024 16:13:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=BC=E5=85=A5=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E5=9B=A0=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/Source.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/app/admin/controller/Source.php b/app/admin/controller/Source.php index 161eb2e..a61860a 100644 --- a/app/admin/controller/Source.php +++ b/app/admin/controller/Source.php @@ -162,6 +162,22 @@ class Source extends QfShop return jok('删除成功'); } + // 判断文件编码 + function detectFileEncoding($filename) { + $handle = fopen($filename, 'r'); + $firstLine = fread($handle, 1024); // 读取文件的开头一部分内容 + fclose($handle); + // 尝试使用不同的编码进行解码,并检查是否成功 + if (mb_check_encoding($firstLine, 'UTF-8')) { + return 'UTF-8'; + } elseif (mb_check_encoding($firstLine, 'GBK')) { + return 'GBK'; + } else { + // 如果无法确定编码,则返回默认编码 + return 'UTF-8'; // 或者根据需要返回其他默认编码 + } + } + /** * Excel导入 @@ -186,8 +202,9 @@ class Source extends QfShop $file_name = app()->getRootPath()."public/uploads/".$saveName; //读取excel文件 $PHPReader = new \PHPExcel_Reader_CSV(); - //默认输入字符集 - $PHPReader->setInputEncoding('utf-8'); + //默认输入字符集// 判断文件编码 + $encoding = $this->detectFileEncoding($file_name); + $PHPReader->setInputEncoding($encoding); //默认的分隔符 $PHPReader->setDelimiter(','); //载入文件 @@ -203,7 +220,7 @@ class Source extends QfShop // 生成二维码 foreach ($excel_array as $k => $v) { - $patterns = '/^\d+\./'; + $patterns = '/^\d+\.|\d+\-/'; $title = ''; if (preg_match('/http[^ ]+/', $v[2], $matches)) { $title = preg_replace($patterns, '', $v[1]);