-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path42_image.php
157 lines (154 loc) · 5.05 KB
/
42_image.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?php
$resultPath = __DIR__ . '/42_image';
$prefix = array(
'衛署藥製' => '01',
'衛署藥輸' => '02',
'衛署成製' => '03',
'衛署中藥輸' => '04',
'衛署醫器製' => '05',
'衛署醫器輸' => '06',
'衛署粧製' => '07',
'衛署粧輸' => '08',
'衛署菌疫製' => '09',
'衛署菌疫輸' => '10',
'衛署色輸' => '11',
'內衛藥製' => '12',
'內衛藥輸' => '13',
'內衛成製' => '14',
'內衛菌疫製' => '15',
'內衛菌疫輸' => '16',
'內藥登' => '17',
'署藥兼食製' => '18',
'衛署成輸' => '19',
'衛署罕藥輸' => '20',
'衛署罕藥製' => '21',
'罕菌疫輸' => '22',
'罕菌疫製' => '23',
'罕醫器輸' => '24',
'罕醫器製' => '25',
'衛署色製' => '31',
'衛署粧陸輸' => '40',
'衛署藥陸輸' => '41',
'衛署醫器陸輸' => '42',
'衛署醫器製壹' => '43',
'衛署醫器輸壹' => '44',
'衛署醫器外製' => '45',
'衛署醫器陸輸壹' => '46',
'衛署醫器外製壹' => '47',
'衛部藥製' => '51',
'衛部藥輸' => '52',
'衛部成製' => '53',
'衛部醫器製' => '55',
'衛部醫器輸' => '56',
'衛部粧製' => '57',
'衛部粧輸' => '58',
'衛部菌疫製' => '59',
'衛部菌疫輸' => '60',
'衛部色輸' => '61',
'部藥兼食製' => '68',
'衛部成輸' => '69',
'衛部罕藥輸' => '70',
'衛部罕藥製' => '71',
'衛部罕菌疫輸' => '72',
'衛部罕菌疫製' => '73',
'衛部罕醫器輸' => '74',
'衛部色製' => '81',
'衛部粧陸輸' => '90',
'衛部藥陸輸' => '91',
'衛部醫器陸輸' => '92',
'衛部醫器製壹' => '93',
'衛部醫器輸壹' => '94',
'衛部醫器外製' => '95',
'衛部醫器陸輸壹' => '96',
'衛部醫器外製壹' => '97',
'衛署菌製' => '99',
);
$dbKeys = array();
$fh = fopen('/home/kiang/public_html/drug/Console/Command/data/dbKeys.csv', 'r');
while ($line = fgetcsv($fh, 2048)) {
$dbKeys[$line[0]] = $line[1];
}
fclose($fh);
/*
* Array
(
[0] => 許可證字號
[1] => 中文品名
[2] => 英文品名
[3] => 形狀 shape
[4] => 特殊劑型 s_type
[5] => 顏色 color
[6] => 特殊氣味 odor
[7] => 刻痕 abrasion
[8] => 外觀尺寸 size
[9] => 標註一 note_1
[10] => 標註二 note_2
[11] => 外觀圖檔連結 image
[12] => -
)
*/
$dirLen = strlen(__DIR__) + 1;
$oFh = fopen(__DIR__ . '/42_image.csv', 'w');
fputcsv($oFh, array('id', 'file', 'url', 'mime', 'size'));
$fh = fopen(__DIR__ . '/dataset/42.csv', 'r');
while ($line = fgetcsv($fh, 2000, "\t")) {
if (!empty($line[11])) {
echo "processing {$line[0]}\n";
$parts = explode('字第', $line[0]);
$parts[1] = substr($parts[1], 0, strpos($parts[1], '號'));
if (isset($prefix[$parts[0]])) {
$files = explode(';;', $line[11]);
foreach ($files AS $k => $v) {
$files[$k] = trim($v);
if (empty($files[$k])) {
unset($files[$k]);
}
}
$targetFolder = "{$resultPath}/{$prefix[$parts[0]]}/{$parts[1]}";
if (!file_exists($targetFolder)) {
mkdir($targetFolder, 0777, true);
}
if (count($files) > 1) {
foreach ($files AS $url) {
$targetFile = $targetFolder . '/' . md5($url);
if (!file_exists($targetFile)) {
file_put_contents($targetFile, file_get_contents($url));
}
fputcsv($oFh, array(
$line[0],
substr($targetFile, $dirLen),
$url,
mime_content_type($targetFile),
filesize($targetFile),
));
}
} elseif (isset($dbKeys[$line[0]]) && file_exists("/home/kiang/public_html/drug_images/{$dbKeys[$line[0]]}")) {
$url = $files[key($files)];
$targetFile = $targetFolder . '/' . md5($url);
if (!file_exists($targetFile)) {
exec("mv /home/kiang/public_html/drug_images/{$dbKeys[$line[0]]} {$targetFile}");
}
fputcsv($oFh, array(
$line[0],
substr($targetFile, $dirLen),
$url,
mime_content_type($targetFile),
filesize($targetFile),
));
} else {
$url = $files[key($files)];
$targetFile = $targetFolder . '/' . md5($url);
if (!file_exists($targetFile)) {
file_put_contents($targetFile, file_get_contents($url));
}
fputcsv($oFh, array(
$line[0],
substr($targetFile, $dirLen),
$url,
mime_content_type($targetFile),
filesize($targetFile),
));
}
}
}
}