Pith - miter
<?php
declare(strict_types=1);
session_start();

if (empty($_SESSION['miter'])) {
header('Location: ../../settings.php');
exit;
}

// delete existing zip
$usr_dir = '../../user/';
$zip_past = glob($usr_dir . '*.zip');
if (is_array($zip_past)) {
foreach ($zip_past as $zip) {
if (file_exists($zip) && is_file($zip)) {
unlink($zip);
}
}
}

include 'otc.php';

// create zip
$zip_dir = '../../user/';
$zip_file = 'miter_backup_' . $o_file_date . '.zip';
$zip_gather = $zip_dir . $zip_file;
$zip_new = new ZipArchive;

if ($zip_new->open($zip_gather, ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) {

// miters (txt)
$dat_dir = '../../miters/';
$dat_array = glob($dat_dir . '*.txt');
if (is_array($dat_array)) {
foreach ($dat_array as $user) {
if (file_exists($user) && is_file($user)) {
$zip_new->addFile($user, 'miters/' . basename($user));
}
}
}

// tenons (txt)
$dat_dir = '../../tenons/';
$dat_array = glob($dat_dir . '*.txt');
if (is_array($dat_array)) {
foreach ($dat_array as $user) {
if (file_exists($user) && is_file($user)) {
$zip_new->addFile($user, 'tenons/' . basename($user));
}
}
}

// rasp (txt)
$dat_dir = '../../rasps/';
$dat_array = glob($dat_dir . '*.txt');
if (is_array($dat_array)) {
foreach ($dat_array as $user) {
if (file_exists($user) && is_file($user)) {
$zip_new->addFile($user, 'rasps/' . basename($user));
}
}
}

// user (txt,xml,css)
$dat_dir = '../../user/';
$dat_array = glob($dat_dir . '*.{txt,xml,css}', GLOB_BRACE);
if (is_array($dat_array)) {
foreach ($dat_array as $user) {
if (file_exists($user) && is_file($user)) {
$zip_new->addFile($user, 'user/' . basename($user));
}
}
}

// panels (txt)
$dat_dir = '../../panels/';
$dat_array = glob($dat_dir . '*.txt');
if (is_array($dat_array)) {
foreach ($dat_array as $user) {
if (file_exists($user) && is_file($user)) {
$zip_new->addFile($user, 'panels/' . basename($user));
}
}
}

// tenon_inserts.txt
$dat_dir = '../tenon/';
$dat_array = glob($dat_dir . 'tenon_inserts.txt', GLOB_BRACE);
if (is_array($dat_array)) {
foreach ($dat_array as $user) {
if (file_exists($user) && is_file($user)) {
$zip_new->addFile($user, 'tenon/' . basename($user));
}
}
}

$zip_new->close();
}

if (file_exists($zip_gather) && is_file($zip_gather)) {
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=' . $zip_file);
header('Content-Length: ' . filesize($zip_gather));
readfile($zip_gather);
exit;
}