77 lines
2.6 KiB
PHP
77 lines
2.6 KiB
PHP
|
<!DOCTYPE html>
|
||
|
<html lang="pt-br">
|
||
|
<head>
|
||
|
<meta charset="UTF-8">
|
||
|
<title>Lista de Arquivos</title>
|
||
|
<style>
|
||
|
#searchBox {
|
||
|
margin-bottom: 20px;
|
||
|
padding: 10px;
|
||
|
width: 100%;
|
||
|
max-width: 300px;
|
||
|
font-size: 16px;
|
||
|
}
|
||
|
ul {
|
||
|
list-style-type: none;
|
||
|
padding: 0;
|
||
|
}
|
||
|
li {
|
||
|
margin: 5px 0;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<?php
|
||
|
// Pega o tipo de arquivo da query string
|
||
|
$queries = array();
|
||
|
parse_str($_SERVER['QUERY_STRING'], $queries);
|
||
|
$filetype = isset($queries['filetype']) ? $queries['filetype'] : '';
|
||
|
|
||
|
// Lê o arquivo de texto em um array, cada linha como um elemento
|
||
|
$lines = file("$filetype.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||
|
|
||
|
// Inicia a lista não ordenada
|
||
|
echo '<input type="text" id="searchBox" placeholder="Buscar arquivos..." onkeyup="filterList()">';
|
||
|
|
||
|
echo "<ul id=\"fileList\">";
|
||
|
|
||
|
foreach ($lines as $line) {
|
||
|
// Obtém o nome do arquivo e o caminho
|
||
|
$filename = basename($line);
|
||
|
$parts = explode('/', $line);
|
||
|
$username = $parts[2];
|
||
|
$path_after_public_html = implode('/', array_slice($parts, 4));
|
||
|
$dir_after_public_html = dirname($path_after_public_html);
|
||
|
|
||
|
// Cria o item da lista com o link para o diretório
|
||
|
echo "<li data-filename=\"$filename\" data-username=\"$username\" data-path=\"$dir_after_public_html\">($username) <a href=\"/~$username/$path_after_public_html\">$filename</a> ($dir_after_public_html)</li>";
|
||
|
}
|
||
|
|
||
|
// Fecha a lista não ordenada
|
||
|
echo "</ul>";
|
||
|
?>
|
||
|
|
||
|
<script>
|
||
|
function filterList() {
|
||
|
// Pega o valor do campo de busca
|
||
|
var filter = document.getElementById('searchBox').value.toLowerCase();
|
||
|
var ul = document.getElementById('fileList');
|
||
|
var li = ul.getElementsByTagName('li');
|
||
|
|
||
|
// Itera sobre os itens da lista e esconde os que não correspondem
|
||
|
for (var i = 0; i < li.length; i++) {
|
||
|
var filename = li[i].getAttribute('data-filename').toLowerCase();
|
||
|
var username = li[i].getAttribute('data-username').toLowerCase();
|
||
|
var path = li[i].getAttribute('data-path').toLowerCase();
|
||
|
|
||
|
if (filename.indexOf(filter) > -1 || username.indexOf(filter) > -1 || path.indexOf(filter) > -1) {
|
||
|
li[i].style.display = "";
|
||
|
} else {
|
||
|
li[i].style.display = "none";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|