質問編集履歴
2
情報の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -150,6 +150,8 @@
|
|
150
150
|
/********* 追記 **********/
|
151
151
|
回答してくださった方の意見を元に、コードを修正しました。
|
152
152
|
結果、中身の無いzipが出来上がりました。
|
153
|
+
ただ、zipフォルダはサイズが8KBあります。
|
154
|
+
どういう状況なのか見当がつきません。
|
153
155
|
原因について分かることがあれば意見をお願いしたいです。
|
154
156
|
|
155
157
|
```php
|
1
コード修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -144,4 +144,40 @@
|
|
144
144
|
```
|
145
145
|
|
146
146
|
どこが原因になっているでしょうか?
|
147
|
-
よろしくお願いします。
|
147
|
+
よろしくお願いします。
|
148
|
+
|
149
|
+
|
150
|
+
/********* 追記 **********/
|
151
|
+
回答してくださった方の意見を元に、コードを修正しました。
|
152
|
+
結果、中身の無いzipが出来上がりました。
|
153
|
+
原因について分かることがあれば意見をお願いしたいです。
|
154
|
+
|
155
|
+
```php
|
156
|
+
$dist = 'mysite.zip'; // 生成する圧縮ファイル名
|
157
|
+
$path = './mysite'; // 圧縮するパス
|
158
|
+
$zipTmpDir = '/phpdocs/nonprothemes'; // 一時パス
|
159
|
+
|
160
|
+
|
161
|
+
$zip = new ZipArchive();
|
162
|
+
$zip->open($zipTmpDir.$dist, ZipArchive::CREATE | ZipArchive::OVERWRITE);
|
163
|
+
addZip($zip, $path);
|
164
|
+
$zip->close();
|
165
|
+
|
166
|
+
function addZip($zip, $path) {
|
167
|
+
if (is_dir($path)) {
|
168
|
+
$files = array_diff(scandir($path), ['.', '..']);
|
169
|
+
foreach ($files as $file) addZip($zip, "$path/$file");
|
170
|
+
} else {
|
171
|
+
$zip->addFile($path);
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
// ストリームに出力
|
176
|
+
header('Content-Type: application/zip; name="' . $dist . '"');
|
177
|
+
header('Content-Disposition: attachment; filename="' . $dist . '"');
|
178
|
+
header('Content-Length: '.filesize($zipTmpDir.$dist));
|
179
|
+
echo file_get_contents($zipTmpDir.$dist);
|
180
|
+
|
181
|
+
// 一時ファイルを削除しておく
|
182
|
+
unlink($zipTmpDir.$dist);
|
183
|
+
```
|