File Listing Scripts

Written something you are proud of, post it here.
Post Reply
wrichards8
Posts: 66
Joined: Thu Jan 12, 2012 3:54 pm
Contact:

File Listing Scripts

Post by wrichards8 »

This is a file listing script I devised to list audio files


main.css
[syntax=css]h1 {
padding: 0; margin: 0;
background: #99FF99;
font-family: arial, serif;
font-size: 100%;
color: #660000;
font-weight: 700;
text-align: center;
width:100%;
border: #000000 thin solid;
}
body
{
background: #000066;
color: #FFFFFF;
font-family: arial, serif;
font-size: 100%;
font-weight: 700;
}
#scan {
border: #FFFFFF thin solid;
background: #663366;
width: 35%;
margin-left:40%;
margin-top:15%;
}
a {
color: #00FF00;
text-decoration: none;
}
a:active {
color: #00FF00;
text-decoration: none;
}
a:visited {
color: #00FF00;
text-decoration: none;
}
a:hover {
color: #00FF00;
text-decoration: underline;
}
th {
text-align: left;
}
#tright {
text-align: right;
}[/syntax]


index.php
[syntax=php]<!DOCTYPE html>
<html lang="EN">
<head>
<title>Directory Listing</title>
<link rel="stylesheet" type="text/css" href=" main.css">
<meta charset="utf-8">
</head>
<body>
<h1>Directory Listing</h1>
<div id="scan">
<?php $scan = scandir("stuff");
unset($scan[0]);
unset($scan[1]);
/* Scan the "stuff" folder and store the resulting array in the $scan variable. Unset elements 0 and 1 of the array, as these are . and .. */
if (empty($scan))
{
echo "No files found";
}
else
{
echo "<table style='width: 100%; text-align: left:'>
<thead>
<tr>
<th>Module Code</th>
<th>File Count</th>
</tr>
</thead>
<tbody>";
foreach ($scan as $folder) /* This loops through each element of the $scan array and puts each element into a variable known as $folder, and creates a row from it */
{
$path = "stuff/". $folder; /* This path variable is kind of hanging over from a previous incarnation of this script and gets used on another page but I couldn't be bothered to take it out */
echo "<tr>\n";
echo "<td><a href='audio.php?name=", $folder, "'>", $folder, "</a></td>\n"; /* This opens the audio page and selects the folder we want */
echo "<td>" , count(scandir($path)) -2, "</td>\n"; /* Because the array contains a . and .. element, we must subtract 2 in order to get the file count */
echo "</tr>\n";
}
echo "</tbody>\n";
echo "</table>\n";
}
?>
</div>
</body>
</html>
[/syntax]

audio.php

[syntax=php]<?php $directory = strtoupper($_GET["name"]); /* Processes everything in the name string as uppercase */
$dirscan = scandir("stuff"); /* Scan the stuff folder */
if (!$directory) /* Kill the script if the user doesn't enter a folder name, or enters a folder name that doesn't exist */
{
die ("You haven't selected a directory");
}
elseif(!in_array($directory, $dirscan))
{
die ($directory. " can't be found");
}
else
{
echo "<!DOCTYPE html>
<html lang='EN'>
<head>
<title>Directory Listing for ", $directory, "</title>
<link rel='stylesheet' type='text/css' href=' main.css'>
<meta charset='utf-8'>
</head>
<body>
<h1>Directory Listing for ", $directory, "</h1>
<div id='tright'>
<a href='/'>Back</a
</div>
<div id='scan'>";
$scan = scandir("stuff/". $directory); /* Scans the chosen directory within the stuff folder */
unset($scan[0]); /* Unset the first element */
unset($scan[1]); /* Unset the second element */
if (empty($scan))
{
echo "No files found";
}
else
{
echo "<table style='width: 100%; text-align: left:'>
<thead>
<tr>
<th>File Name</th>
<th>File Size</th>
<th>Date Modified</th>
</tr>
</thead>
<tbody>";
foreach ($scan as $folder)
{
$trame = substr($folder, 0, -4); /* This is the name of the file before the extension */
$path = "stuff/". $directory. "/". $folder; /* Physical path to the file */
$size = filesize($path);
echo "<tr>\n";
echo "<td><a href='stuff/", $folder, "'>", $trame, "</a></td>\n"; /* Link to where the file can be downloaded */
echo "<td>" , number_format($size / 1024000,2), "MB</td>\n"; /* This tales the file size, and displays it in MB */
echo "<td>" , date ("d/m/Y, H:i:s", filemtime($path)), "</td>\n"; /* Date the file was last modified */
echo "</tr>\n";
}
echo "</tbody>\n";
echo "</table>\n";
}
}
?>
</div>
</body>
</html>
[/syntax]

Feel free to contact me if you've got questions
User avatar
DrMax
Posts: 21
Joined: Mon Feb 06, 2012 10:55 pm

Re: File Listing Scripts

Post by DrMax »

Nice work :D.
Image
"They were good. I'm the best."
Post Reply