ファイルをアップロードして抽出し、zip 内のフォルダー名を取得して、その名前とパスを db に挿入する PHP スクリプトを作成しました。ただし、zipアーカイブからフォルダー名を抽出せず、必要なパス名を取得しません。ディレクトリ名だけが必要なすべてのディレクトリとファイル名を抽出します。zip ファイルという名前がabc.zip
あり、このようなフォルダーが含まれて
a ->b->c
ab ->bc
いるとします。現在、a や b などの parnet ディレクトリ名のみを取得できるようにすることで、すべてのディレクトリ名とファイル名を取得できます。
$zip = new ZipArchive;
$zip->open($filen);
$zip->extractTo($path);
$zip->close();
$zip = new ZipArchive;
if ($zip->open($filen) === true) {
for($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
$fileinfo = pathinfo($filename);
$db->con->query("Insert into files (rand) values ('$filename')");
}
$zip->close();
}