Re: code quest
| From: | Kirk Bailey | Date: | Sat, 04 Dec 2010 16:30:10 +0000 |
| Subject: | Re: code quest | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-309848@lists.php.net to get a copy of this message | ||
my current code is as follows:
*<ul>
<?php # The next several lines declare an array of directories which
are NOT to be listed!
$excludes[] = 'images';
$excludes[] = 'cgi-bin';
$excludes[] = 'vti_cnf';
$excludes[] = 'private';
$excludes[] = 'thumbnail';
$ls = scandir(dirname(__FILE__));
foreach ($ls as $d) {
if (is_dir($d) && !preg_match('/^\./',basename($d)) &&
!in_array(basename($d),$excludes)) {
echo '<li><a href="'.$d.'">'.$d.'</a><br/>'.PHP_EOL;
}
}
?>
</ul>*
The page containing this is at this url:
http://www.howlermonkey.net/dirlisting.php
I believe this will be a starting point for the functionality I am looking for- an automatic menu of areas in a website one may go to. By excluding some folders, people don't go trespassing into the cgi-bin or images folder, or into areas reserved for administrative uses.
Daniel P. Brown wrote:
On Wed, Dec 1, 2010 at 23:13, Kirk Bailey <kbailey@howlermonkey.net> wrote: [snip!]-- end Very Truly yours, - Kirk Bailey, Largo Florida kniht +-----+ | BOX | +-----+ thinkCan this be improved to exclude anything with a '.' or a '-' in it's name? This will exclude the smileys and cgi-bin and such. If it can be persuaded to read a 1 line description from each subdirectory it could then use THAT as the text in the link, instead of the name. This could be useful in many settings.Sure. Change:if (is_dir($d) && $d != '.' && $d != '..') {To:if (is_dir($d) && !preg_match('/[\.\-]/',$d)) {Keep in mind, though, that the change will no longer show anythingthat matches the below either:example.directory example-directory special-images css.filesIn other words, you may instead want to explicitly state whichdirectories to omit, and then drop anything that begins with a dot as well (hidden directories on *NIX-like boxes) like so: <?php $excludes[] = 'cgi-bin'; $excludes[] = 'vti_cnf'; $excludes[] = 'private'; $excludes[] = 'thumbnail'; $ls = scandir(dirname(__FILE__)); foreach ($ls as $d) { if (is_dir($d) && !preg_match('/^\./',basename($d)) && !in_array(basename($d),$excludes)) {echo '<li><a href="'.$d.'">'.$d.'</a><br/>'.PHP_EOL;} } ?>