Daniel, this is so close to bang on it's unbelivable. Only prob is my host provided me with this $^@&%^^$&! dir which is named .smileys, which holds icons for use in the control panel. It should NOT list it, nor list the /cgi-bin, nor /images. Can it somehow exclude those 3, or maybe a list of things not to notice?

Also, how compatible is it with SSI includes? If part of the echo is an ssi include statement, will it work right? Hmmm...

Daniel P. Brown wrote:
On Fri, Nov 26, 2010 at 19:03, Kirk Bailey <kbai...@howlermonkey.net> wrote:
I need a routine that will return a list of every directory immediately
under the current directory- but nothing else, just a list of directories, 1
level deep, NO FILES, no listing of current dir or prior dir either.



    $ls = scandir(dirname(__FILE__));

    foreach ($ls as $d) {
        if (is_dir($d) && $d != '.' && $d != '..') {
            echo '<a href="'.$d.'">'.$d.'</a><br/>'.PHP_EOL;

   If you want something more powerful - and often quicker - check
into SPL: specifically FilesystemIterator[1], DirectoryIterator[2],
and RecursiveDirectoryIterator[3].  A quick example to link all child
files and directories with relative linking:


    $path = dirname(__FILE__);
    $list = new RecursiveIteratorIterator(new

    foreach ($list as $k => $v) {
        if (!preg_match('/\./',$v)) {
            $v = str_replace($path.'/',null,$v); // We only want
relative linking
            echo '<a href="'.$v.'">'.$v.'</a><br/>'.PHP_EOL;


Very Truly yours,
                - Kirk Bailey,
                  Largo Florida

kniht +-----+ | BOX | +-----+ think

Reply via email to