🤐
【FTPアップロード高速化】同階層のZIPファイルを一括解凍するPHP
FTPでアップロードしたZIPファイル一括解凍
アクセスすると同階層のzipファイルすべてを解凍してくれる(全zipの解凍が終わるまで開いたままにしておくこと)。大量データを速くアップロードしたい時に。ローカルでzip圧縮したデータとこのunzip.phpをアップしアクセスする。
unzip.php
<?php
$directoryPath = './'; // 解凍したいzipファイルがあるディレクトリを指定。
function unzip($zip_file){
return shell_exec("unzip $zip_file");
}
$files = glob($directoryPath . '*.zip'); // 指定したディレクトリ内のzipファイルをすべて取得。
foreach ($files as $file) {
if(is_file($file)) {
if($zip = unzip($file)){
echo "Zip解凍<br />\n";
echo "対象ファイル:$file<br />\n";
echo "<pre>$zip</pre>\n";
echo "$file: は正常に解凍されました。<br />\n";
} else{
echo("Failed to extract: $file\n");
}
}
}
?>
おまけ・自動インデックス表示
その階層のディレクトリを自動で表示しリンク化してくれる
index.php
<html lang="ja">
<?php
$dir = opendir('.');
echo "<ul>";
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != ".." && is_dir($file)) {
echo "<li><a href='$file'>$file</a></li>";
}
}
echo "</ul>";
closedir($dir);
?>
</html>
Discussion