Browse the Filesystem
       (Chapter 8, Shared Hosting - Pg 82-83)
       < Back to Code Repository
       
<pre>
<?php
if (isset($_GET['dir']))
{
    ls($_GET['dir']);
}
elseif (isset($_GET['file']))
{
    cat($_GET['file']);
}
else
{
    ls('/');
}
function cat($file)
{
    echo htmlentities(file_get_contents($file), ENT_QUOTES, 'UTF-8');
}
function ls($dir)
{
    $handle = dir($dir);
    while ($filename = $handle->read())
    {
        $size = filesize("$dir$filename");
        if (is_dir("$dir$filename"))
        {
            $type = 'dir';
            $filename .= '/';
        }
        else
        {
            $type = 'file';
        }
        if (is_readable("$dir$filename"))
        {
            $line = str_pad($size, 15);
            $line .= "<a href=\"{$_SERVER['PHP_SELF']}";
            $line .= "?$type=$dir$filename\">$filename</a>";
        }
        else
        {
            $line = str_pad($size, 15);
            $line .= $filename;
        }
        echo "$line\n";
    }
    $handle->close();
}
?>
</pre>