|
...
|
...
|
@@ -50,6 +50,18 @@ class ProjectImport extends Command |
|
|
|
|
|
|
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import start' . PHP_EOL;
|
|
|
|
|
|
|
|
$is_gbk = 0;
|
|
|
|
$file_code_type = $this->get_code_type($task->file_url);
|
|
|
|
if ($file_code_type === false) {
|
|
|
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: 文件编码格式错误' . PHP_EOL;
|
|
|
|
$task->status = ImportTask::STATUS_COM;//导入完成
|
|
|
|
$task->save();
|
|
|
|
return true;
|
|
|
|
} elseif ($file_code_type === 'GBK') {
|
|
|
|
$is_gbk = 1;
|
|
|
|
setlocale(LC_ALL, 'zh_CN');
|
|
|
|
}
|
|
|
|
|
|
|
|
//读取csv文件
|
|
|
|
$line_of_text = [];
|
|
|
|
try {
|
|
...
|
...
|
@@ -67,7 +79,6 @@ class ProjectImport extends Command |
|
|
|
|
|
|
|
$total_count = 0; //总条数
|
|
|
|
$success_count = 0; //成功导入条数
|
|
|
|
setlocale(LC_ALL,'zh_CN');
|
|
|
|
if (count($line_of_text) > 1) {
|
|
|
|
$task->status = ImportTask::STATUS_ING;//导入中
|
|
|
|
$task->save();
|
|
...
|
...
|
@@ -78,8 +89,10 @@ class ProjectImport extends Command |
|
|
|
foreach ($line_of_text as $k => $v) {
|
|
|
|
if ($k > 0 && isset($v[0]) && $v[0]) {
|
|
|
|
|
|
|
|
foreach ($v as $kk=>$vv){
|
|
|
|
$v[$kk] = mb_convert_encoding($vv, 'utf-8', 'gbk');
|
|
|
|
if ($is_gbk) {
|
|
|
|
foreach ($v as $kk => $vv) {
|
|
|
|
$v[$kk] = mb_convert_encoding($vv, 'utf-8', 'gbk');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$total_count += 1;
|
|
...
|
...
|
@@ -116,4 +129,18 @@ class ProjectImport extends Command |
|
|
|
|
|
|
|
sleep(2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//判断编码格式
|
|
|
|
function get_code_type($file)
|
|
|
|
{
|
|
|
|
$list = array('GBK', 'UTF-8');
|
|
|
|
$str = file_get_contents($file);
|
|
|
|
foreach ($list as $item) {
|
|
|
|
$tmp = mb_convert_encoding($str, $item, $item);
|
|
|
|
if (md5($tmp) == md5($str)) {
|
|
|
|
return $item;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|