1 && ($info[1] === 'elwig' || $info[1] === 'winziprint')) {
$getProd = $info[1];
if (sizeof($info) > 2) $getVers = $info[2];
if (sizeof($info) > 3) {
header('Status: 404');
header('Content-Length: 0');
exit();
}
} else if ($_SERVER['PATH_INFO'] !== '') {
header('Status: 404');
header('Content-Length: 0');
exit();
}
$filesRaw = scandir('.');
usort($filesRaw, 'version_compare');
$files = [];
foreach ($filesRaw as $file) {
if (str_starts_with($file, ".") || str_ends_with($file, ".php") || !str_contains($file, ".")) continue;
$files[$file] = [filesize($file), filemtime($file), filectime($file)];
}
$entities = [];
foreach ($files as $name => [$size, $mtime, $ctime]) {
$p1 = strrpos($name, '-');
$p2 = strrpos($name, '.');
$url = "https://elwig.at/files/$name";
if ($p1 === false || $p2 === false) {
$vers = null;
$prod = null;
} else {
$vers = substr($name, $p1 + 1, $p2 - $p1 - 1);
$prod = strtolower(substr($name, 0, $p1));
}
$mod = date(DATE_ATOM, $mtime);
$cre = date(DATE_ATOM, $ctime);
$entities[$name] = [
$prod,
$vers,
$url,
$size,
$mtime,
$ctime,
$mod,
$cre
];
}
if ($getVers === 'latest') {
$versions = [];
foreach ($entities as $name => [$prod, $vers, $url, $size, $mtime, $ctime, $mod, $cre]) {
if ($prod === $getProd) $versions[] = $vers;
}
usort($versions, 'version_compare');
$getVers = $versions[sizeof($versions) - 1];
}
$entities = array_filter($entities, function($e) {
global $getProd;
global $getVers;
return (empty($getProd) || $getProd === $e[0]) && (empty($getVers) || $getVers === $e[1]);
});
$format = get_fmt();
file_put_contents('.log.csv', time() . "|$_SERVER[REMOTE_ADDR]|$_SERVER[REQUEST_METHOD]|$_SERVER[REQUEST_URI]|$format|$ua\n", FILE_APPEND);
if ($format === 'json') {
header('Content-Type: application/json; charset=UTF-8');
echo "{\"data\": [\n";
$first = true;
foreach ($entities as $name => [$prod, $vers, $url, $size, $mtime, $ctime, $mod, $cre]) {
if (!$first) echo ",\n";
echo " {\"product\": \"$prod\", \"version\": \"$vers\", \"name\": \"$name\", \"url\": \"$url\", \"size\": $size, \"created\": \"$cre\", \"modified\": \"$mod\"}";
$first = false;
}
echo "\n]}\n";
} else if ($format === 'text') {
header('Content-Type: text/plain; charset=UTF-8');
foreach ($entities as $name => [$prod, $vers, $url, $size, $mtime, $ctime, $mod, $cre]) {
echo "$name\t" . number_format($size / 1024 / 1024, 1) . " MB\n";
}
} else {
if (isset($getProd) && isset($getVers) && sizeof($entities) === 1) {
header('Status: 303');
header('Location: ' . $entities[array_key_first($entities)][2]);
header('Content-Length: 0');
exit();
}
header('Content-Type: text/html; charset=UTF-8');
?>
Downloads - Elwig
Downloads
Startseite
| Name | Größe | Änderungsdatum |
[$prod, $vers, $url, $size, $mtime, $ctime, $mod, $cre]) {
echo " | $name | " . number_format($size / 1024 / 1024, 1) . " MB | " . date('d.m.Y, H:i', $mtime) . " |
\n";
} ?>
JSON-Format