Re: How to write a PHP coding to list out all files and directories aslinks to them?
| From: | Mitch | Date: | Wed, 27 Apr 2011 02:20:22 +0000 |
| Subject: | Re: How to write a PHP coding to list out all files and directories aslinks to them? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-312543@lists.php.net to get a copy of this message | ||
On 4/14/2011 6:16 PM, Mikhail S wrote:
> How to write a PHP coding to list out all files and directories as links to
> them?
>
> This is somewhat similar to some index pages. When new file or folder is
> added to the directory, HTML page should display the newly created
> file/folder together with previous ones after it is being refreshed. (prefer
> in alphabatical order)
>
> How to achieve this sort of functionality in PHP? Please provide sample
> coding as well. (and any references)
>
> Thanks.
>
> --
> Mike
> http://jp.shopsloop.com/
>
OK, maybe not the most elegant ... but it works for my purposes ... and
it was my first attempt at these directory functions. You can navigate
up and down the directory hierarchy. It flags files older than 1 year
for potential cleanup.
Hope it gives you some ideas and a place to start...
Mitch
#! /usr/bin/php4 <html> <head> <title>Diskspace Analyzer</title> <?php foreach ($_REQUEST as $key=>$value){ $$key = $value; } ?> </head> <body> <form name="form1" method="POST" action="<?php $PHP_SELF ?>"> <p align="center"><font color="#FF0000" size="+2">Enter Directory Name Here</font></p> <p align="center"> <input name="dName" type="text" id="dName" value="<?php $dName ?>" size="50" maxlength="256"> <input type="submit" name="Submit" value="Submit"> </p> </form> <br> <?php if (isset($dName) && is_dir($dName)){ print("<hr>\n"); print("<font size=\"+2\"><strong>$dName Directory Information</strong></font><br> \n"); print("<font color=\"yellow\"><strong>Highlighted</strong></font> files are older than 1 year and candidates for cleanup<br> \n"); print("<table border=\"1\" bordercolor=\"gray\" cellspacing=\"0\" cellpadding=\"5\">\n"); print("<th bgcolor=\"black\"><font color=\"white\">File Name</font></th><th bgcolor=\"black\"><font color=\"white\">File Size</font></th><th bgcolor=\"black\"><font color=\"white\">File Date</font></th>\n"); $d = @dir(trim($dName)); while ($entry = @$d->read()){ $total++; $fileExt = explode(".", $entry); if(is_dir($d->path . "/" . $entry)){ if($fileExt[0] ==""){ $fileExt[1] = "SysDirectories"; } else { $fileExt[1] = "Directories"; } $dirSize = filesize($d->path . "/" . $entry); $totaldirSize += $dirSize; $dirList[$entry] = $dirSize; } else { $fileExt[1] = "Files"; $fileStats = @stat($d->path . "/" . $entry); $fileSize = $fileStats[7]; $totalSize += $fileSize; $currDate = getdate(); $fdDay = date("z", $fileStats[10]); $fdYear = date("Y", $fileStats[10]); $ckDay = $currDate["yday"]; $ckYear = ($currDate["year"] - 1); if (($fdYear < $ckYear) || (($fdYear == $ckYear) && ($fdDay <= $ckDay))){ $highlight = "yellow"; $totalSavings += $fileStats[7]; } else { $highlight = "white"; } print("\t<tr>\n"); print("\t\t<td bgcolor=\"$highlight\">$entry</td><td bgcolor=\"$highlight\" align=\"right\">$fileSize</td><td align=\"right\" bgcolor=\"$highlight\">"); printf("%s", date("m/d/Y", $fileStats[10])); print("</td>\n"); print("\t</tr>\n"); } $fileTypes[$fileExt[1]]++; } print("\t<tr>\n"); print("\t\t<td bgcolor=\"gray\"><strong>Total Bytes in Files</strong></td><td align=\"right\" bgcolor=\"gray\"><strong>$totalSize</strong></td><td align=\"right\" bgcolor=\"gray\">"); if ($totalSavings > 0){ print("<strong>Potential Savings: $totalSavings</strong>"); } print("</td>\n"); print("\t</tr>\n"); print("</table><br> \n"); if(count($dirList) > 1){ ksort($dirList); print("<table border=\"1\" bordercolor=\"gray\" cellspacing=\"0\" cellpadding=\"5\">\n"); print("<th bgcolor=\"black\"><font color=\"white\">Directories</font></th>\n"); foreach ($dirList as $key=>$value){ print("\t<tr>\n"); if ($key == "."){ print("\t\t<td>$key (Current)</td>\n"); } elseif ($key == ".."){ $truncPoint = strrpos($dName, "/"); $parentDir = substr($dName, 0, $truncPoint); if ($parentDir == ""){ $parentDir = "/"; } print("\t\t<td><a href=\"" . $PHP_SELF . "?dName=" . $parentDir . "&Submit=Submit\">$key</a> (Parent)</td>\n"); } else { print("\t\t<td><a href=\"" . $PHP_SELF . "?dName=" . $dName . "/" . $key . "&Submit=Submit\">$key</a></td>\n"); } print("\t</tr>\n"); } print("\t<tr>\n"); print("\t\t<td bgcolor=\"gray\"><strong>Total Bytes ($totaldirSize)</strong></td>\n"); print("\t</tr>\n"); print("</table><br> \n"); } ksort($fileTypes); arsort($fileTypes); print("<ul>\n"); foreach ($fileTypes as $key=>$value){ print("<li>$key ($value)\n"); }; print("</ul>\n"); print("Total Objects in $filespec branch: $total<br>\n"); print("Total Bytes in $filespec branch: " . ($totalSize + $totaldirSize) . "<br> \n"); } else { Print ("<hr><br><h2><font color=\"#ff0000\">Requested Directory ( $dName ) was not found</font></h2>\n"); } // end if (isset(... print ("<br><hr>\n"); ?> </body> </html>
#! /usr/bin/php4 <html> <head> <title>Diskspace Analyzer</title> <?php foreach ($_REQUEST as $key=>$value){ $$key = $value; } ?> </head> <body> <form name="form1" method="POST" action="<?php $PHP_SELF ?>"> <p align="center"><font color="#FF0000" size="+2">Enter Directory Name Here</font></p> <p align="center"> <input name="dName" type="text" id="dName" value="<?php $dName ?>" size="50" maxlength="256"> <input type="submit" name="Submit" value="Submit"> </p> </form> <br> <?php if (isset($dName) && is_dir($dName)){ print("<hr>\n"); print("<font size=\"+2\"><strong>$dName Directory Information</strong></font><br> \n"); print("<font color=\"yellow\"><strong>Highlighted</strong></font> files are older than 1 year and candidates for cleanup<br> \n"); print("<table border=\"1\" bordercolor=\"gray\" cellspacing=\"0\" cellpadding=\"5\">\n"); print("<th bgcolor=\"black\"><font color=\"white\">File Name</font></th><th bgcolor=\"black\"><font color=\"white\">File Size</font></th><th bgcolor=\"black\"><font color=\"white\">File Date</font></th>\n"); $d = @dir(trim($dName)); while ($entry = @$d->read()){ $total++; $fileExt = explode(".", $entry); if(is_dir($d->path . "/" . $entry)){ if($fileExt[0] ==""){ $fileExt[1] = "SysDirectories"; } else { $fileExt[1] = "Directories"; } $dirSize = filesize($d->path . "/" . $entry); $totaldirSize += $dirSize; $dirList[$entry] = $dirSize; } else { $fileExt[1] = "Files"; $fileStats = @stat($d->path . "/" . $entry); $fileSize = $fileStats[7]; $totalSize += $fileSize; $currDate = getdate(); $fdDay = date("z", $fileStats[10]); $fdYear = date("Y", $fileStats[10]); $ckDay = $currDate["yday"]; $ckYear = ($currDate["year"] - 1); if (($fdYear < $ckYear) || (($fdYear == $ckYear) && ($fdDay <= $ckDay))){ $highlight = "yellow"; $totalSavings += $fileStats[7]; } else { $highlight = "white"; } print("\t<tr>\n"); print("\t\t<td bgcolor=\"$highlight\">$entry</td><td bgcolor=\"$highlight\" align=\"right\">$fileSize</td><td align=\"right\" bgcolor=\"$highlight\">"); printf("%s", date("m/d/Y", $fileStats[10])); print("</td>\n"); print("\t</tr>\n"); } $fileTypes[$fileExt[1]]++; } print("\t<tr>\n"); print("\t\t<td bgcolor=\"gray\"><strong>Total Bytes in Files</strong></td><td align=\"right\" bgcolor=\"gray\"><strong>$totalSize</strong></td><td align=\"right\" bgcolor=\"gray\">"); if ($totalSavings > 0){ print("<strong>Potential Savings: $totalSavings</strong>"); } print("</td>\n"); print("\t</tr>\n"); print("</table><br> \n"); if(count($dirList) > 1){ ksort($dirList); print("<table border=\"1\" bordercolor=\"gray\" cellspacing=\"0\" cellpadding=\"5\">\n"); print("<th bgcolor=\"black\"><font color=\"white\">Directories</font></th>\n"); foreach ($dirList as $key=>$value){ print("\t<tr>\n"); if ($key == "."){ print("\t\t<td>$key (Current)</td>\n"); } elseif ($key == ".."){ $truncPoint = strrpos($dName, "/"); $parentDir = substr($dName, 0, $truncPoint); if ($parentDir == ""){ $parentDir = "/"; } print("\t\t<td><a href=\"" . $PHP_SELF . "?dName=" . $parentDir . "&Submit=Submit\">$key</a> (Parent)</td>\n"); } else { print("\t\t<td><a href=\"" . $PHP_SELF . "?dName=" . $dName . "/" . $key . "&Submit=Submit\">$key</a></td>\n"); } print("\t</tr>\n"); } print("\t<tr>\n"); print("\t\t<td bgcolor=\"gray\"><strong>Total Bytes ($totaldirSize)</strong></td>\n"); print("\t</tr>\n"); print("</table><br> \n"); } ksort($fileTypes); arsort($fileTypes); print("<ul>\n"); foreach ($fileTypes as $key=>$value){ print("<li>$key ($value)\n"); }; print("</ul>\n"); print("Total Objects in $filespec branch: $total<br>\n"); print("Total Bytes in $filespec branch: " . ($totalSize + $totaldirSize) . "<br> \n"); } else { Print ("<hr><br><h2><font color=\"#ff0000\">Requested Directory ( $dName ) was not found</font></h2>\n"); } // end if (isset(... print ("<br><hr>\n"); ?> </body> </html>