|
@@ -50,6 +50,18 @@ class ProjectImport extends Command |
|
@@ -50,6 +50,18 @@ class ProjectImport extends Command |
|
50
|
|
50
|
|
|
51
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import start' . PHP_EOL;
|
51
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import start' . PHP_EOL;
|
|
52
|
|
52
|
|
|
|
|
53
|
+ $is_gbk = 0;
|
|
|
|
54
|
+ $file_code_type = $this->get_code_type($task->file_url);
|
|
|
|
55
|
+ if ($file_code_type === false) {
|
|
|
|
56
|
+ echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: 文件编码格式错误' . PHP_EOL;
|
|
|
|
57
|
+ $task->status = ImportTask::STATUS_COM;//导入完成
|
|
|
|
58
|
+ $task->save();
|
|
|
|
59
|
+ return true;
|
|
|
|
60
|
+ } elseif ($file_code_type === 'GBK') {
|
|
|
|
61
|
+ $is_gbk = 1;
|
|
|
|
62
|
+ setlocale(LC_ALL, 'zh_CN');
|
|
|
|
63
|
+ }
|
|
|
|
64
|
+
|
|
53
|
//读取csv文件
|
65
|
//读取csv文件
|
|
54
|
$line_of_text = [];
|
66
|
$line_of_text = [];
|
|
55
|
try {
|
67
|
try {
|
|
@@ -67,7 +79,6 @@ class ProjectImport extends Command |
|
@@ -67,7 +79,6 @@ class ProjectImport extends Command |
|
67
|
|
79
|
|
|
68
|
$total_count = 0; //总条数
|
80
|
$total_count = 0; //总条数
|
|
69
|
$success_count = 0; //成功导入条数
|
81
|
$success_count = 0; //成功导入条数
|
|
70
|
- setlocale(LC_ALL,'zh_CN');
|
|
|
|
71
|
if (count($line_of_text) > 1) {
|
82
|
if (count($line_of_text) > 1) {
|
|
72
|
$task->status = ImportTask::STATUS_ING;//导入中
|
83
|
$task->status = ImportTask::STATUS_ING;//导入中
|
|
73
|
$task->save();
|
84
|
$task->save();
|
|
@@ -78,8 +89,10 @@ class ProjectImport extends Command |
|
@@ -78,8 +89,10 @@ class ProjectImport extends Command |
|
78
|
foreach ($line_of_text as $k => $v) {
|
89
|
foreach ($line_of_text as $k => $v) {
|
|
79
|
if ($k > 0 && isset($v[0]) && $v[0]) {
|
90
|
if ($k > 0 && isset($v[0]) && $v[0]) {
|
|
80
|
|
91
|
|
|
81
|
- foreach ($v as $kk=>$vv){
|
|
|
|
82
|
- $v[$kk] = mb_convert_encoding($vv, 'utf-8', 'gbk');
|
92
|
+ if ($is_gbk) {
|
|
|
|
93
|
+ foreach ($v as $kk => $vv) {
|
|
|
|
94
|
+ $v[$kk] = mb_convert_encoding($vv, 'utf-8', 'gbk');
|
|
|
|
95
|
+ }
|
|
83
|
}
|
96
|
}
|
|
84
|
|
97
|
|
|
85
|
$total_count += 1;
|
98
|
$total_count += 1;
|
|
@@ -116,4 +129,18 @@ class ProjectImport extends Command |
|
@@ -116,4 +129,18 @@ class ProjectImport extends Command |
|
116
|
|
129
|
|
|
117
|
sleep(2);
|
130
|
sleep(2);
|
|
118
|
}
|
131
|
}
|
|
|
|
132
|
+
|
|
|
|
133
|
+ //判断编码格式
|
|
|
|
134
|
+ function get_code_type($file)
|
|
|
|
135
|
+ {
|
|
|
|
136
|
+ $list = array('GBK', 'UTF-8');
|
|
|
|
137
|
+ $str = file_get_contents($file);
|
|
|
|
138
|
+ foreach ($list as $item) {
|
|
|
|
139
|
+ $tmp = mb_convert_encoding($str, $item, $item);
|
|
|
|
140
|
+ if (md5($tmp) == md5($str)) {
|
|
|
|
141
|
+ return $item;
|
|
|
|
142
|
+ }
|
|
|
|
143
|
+ }
|
|
|
|
144
|
+ return false;
|
|
|
|
145
|
+ }
|
|
119
|
} |
146
|
} |