Go Back   CodingForums.com > :: Server side development > PHP > Post a PHP snippet

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rating: Thread Rating: 6 votes, 5.00 average.
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 11-06-2005, 02:48 AM   PM User | #1
missing-score
Senior Coder


 
missing-score's Avatar
 
Join Date: Jan 2003
Location: UK
Posts: 2,194
Thanks: 0
Thanked 0 Times in 0 Posts
missing-score is on a distinguished road
Recursive Directory Listing (Show full directory structure)

This function will read the full structure of a directory. It's recursive becuase it doesn't stop with the one directory, it just keeps going through all of the directories in the folder you specify.

PHP Code:
<?php

function getDirectory$path '.'$level ){

    
$ignore = array( 'cgi-bin''.''..' );
    
// Directories to ignore when listing output. Many hosts
    // will deny PHP access to the cgi-bin.

    
$dh = @opendir$path );
    
// Open the directory to the handle $dh
    
    
while( false !== ( $file readdir$dh ) ) ){
    
// Loop through the directory
    
        
if( !in_array$file$ignore ) ){
        
// Check that this file is not to be ignored
            
            
$spaces str_repeat'&nbsp;', ( $level ) );
            
// Just to add spacing to the list, to better
            // show the directory tree.
            
            
if( is_dir"$path/$file" ) ){
            
// Its a directory, so we need to keep reading down...
            
                
echo "<strong>$spaces $file</strong><br />";
                
getDirectory"$path/$file", ($level+1) );
                
// Re-call this same function but on a new directory.
                // this is what makes function recursive.
            
            
} else {
            
                echo 
"$spaces $file<br />";
                
// Just print out the filename
            
            
}
        
        }
    
    }
    
    
closedir$dh );
    
// Close the directory handle

}

?>
Example Calls:

PHP Code:
getDirectory"." );
// Get the current directory

getDirectory"./files/includes" );
// Get contents of the "files/includes" folder 
Functions Used:
http://www.php.net/opendir
http://www.php.net/readdir
http://www.php.net/closedir
http://www.php.net/in-array
http://www.php.net/str-repeat
http://www.php.net/is-dir
missing-score is offline   Reply With Quote
Old 11-15-2005, 10:12 PM   PM User | #2
Nikolis
New Coder

 
Join Date: Nov 2005
Posts: 12
Thanks: 0
Thanked 0 Times in 0 Posts
Nikolis is an unknown quantity at this point
Thanks man. I didn't want to spend the time writing and thinking about doing this. Helped alot with this little snippet ^^ Thanks again
Nikolis is offline   Reply With Quote
Old 09-28-2006, 07:12 AM   PM User | #3
thedonkdonk
New to the CF scene

 
Join Date: Sep 2006
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
thedonkdonk is an unknown quantity at this point
I also wanted to say thanks a lot. This is exactly what I was looking for.
thedonkdonk is offline   Reply With Quote
Old 04-04-2007, 10:40 AM   PM User | #4
cookieboi
New Coder

 
Join Date: Jan 2007
Posts: 13
Thanks: 0
Thanked 0 Times in 0 Posts
cookieboi is an unknown quantity at this point
Unhappy

sorry but this doesn't work on my php server.. I NEED HELP lol.. if i want to show a directory /public_html/flash/ what do i have to put? and what is the "level" variable about??
thanx.

Jamez.
__________________
woooooo!

visit my website:
click here!
cookieboi is offline   Reply With Quote
Old 04-04-2007, 10:51 AM   PM User | #5
cookieboi
New Coder

 
Join Date: Jan 2007
Posts: 13
Thanks: 0
Thanked 0 Times in 0 Posts
cookieboi is an unknown quantity at this point
ok peeps, soz to double post, just solved it - you need the full directory path including this /home/user/public/foldername/

thanx.

Jamez.
__________________
woooooo!

visit my website:
click here!
cookieboi is offline   Reply With Quote
Old 06-13-2007, 11:43 PM   PM User | #6
marek_mar
Sensei


 
Join Date: Aug 2003
Location: One step ahead of you.
Posts: 2,815
Thanks: 0
Thanked 3 Times in 3 Posts
marek_mar is on a distinguished road
This function does the same thing but is a _LOT_ faster:
PHP Code:
function get_dir_iterative($dir '.'$exclude = array( 'cgi-bin''.''..' ))
{
    
$exclude array_flip($exclude);
    if(!
is_dir($dir))
    {
        return;
    }
    
    
$dh opendir($dir);
    
    if(!
$dh)
    {
        return;
    }

    
$stack = array($dh);
    
$level 0;

    while(
count($stack))
    {
        if(
false !== ( $file readdir$stack[0] ) ) )
        {
            if(!isset(
$exclude[$file]))
            {
                print 
str_repeat('&nbsp;'$level 4);
                if(
is_dir($dir '/' $file))
                {
                    
$dh opendir($file '/' $dir);
                    if(
$dh)
                    {
                        print 
"<strong>$file</strong><br />\n";
                        
array_unshift($stack$dh);
                        ++
$level;
                    }
                }
                else 
                {
                    
                    print 
"$file<br />\n";
                }
            }
        }
        else 
        {
            
closedir(array_shift($stack));
            --
$level;
        }
    }

__________________
I'm not sure if this was any help, but I hope it didn't make you stupider.

Experience is something you get just after you really need it.
PHP Installation Guide Feedback welcome.
marek_mar is offline   Reply With Quote
Old 07-17-2007, 02:42 PM   PM User | #7
Peuplarchie
Regular Coder

 
Join Date: Feb 2006
Posts: 262
Thanks: 23
Thanked 1 Time in 1 Post
Peuplarchie is an unknown quantity at this point
Both code don't work for me, I only see a blank page.

Can someone help ?
Peuplarchie is offline   Reply With Quote
Old 08-13-2007, 05:35 AM   PM User | #8
Yaggles
Regular Coder

 
Join Date: Jan 2005
Posts: 153
Thanks: 0
Thanked 0 Times in 0 Posts
Yaggles is an unknown quantity at this point
Peuplarchie, did you actually call the function or did you just copy/paste the code from above into your php page? Because you have to include the above code in <?PHP and ?> and then actually call it inside the php tags like so:
PHP Code:
<?
//Function code
//....

//Now call it by using one of these,
//depending on which function you chose above:
getdirectory('.');
//or
get_dir_iterative(/*etc.*/);
?>
Yaggles is offline   Reply With Quote
Old 11-13-2008, 11:07 PM   PM User | #9
Eamonnca1
New to the CF scene

 
Join Date: Nov 2008
Location: California
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Eamonnca1 is an unknown quantity at this point
Smile

marek_mar, Dude, that code is lightening fast but I'm finding it only goes two levels deep.
Eamonnca1 is offline   Reply With Quote
Old 11-14-2008, 03:34 PM   PM User | #10
zz_james
New to the CF scene

 
Join Date: Nov 2008
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
zz_james is an unknown quantity at this point
Smile ok but would be nice if it were a proper function

Not being sniffy, should probably rewrite/repost myself: but the function is both getting the directory listing and printing the result, would be nice if it returned the data from the recursive directory scan (probably in an array) so programmer can specify how it is shown, either print or send to HTML template etc. keep functions doing one thing, getting data from filesystem or printing the result makes it more re-usable.
zz_james is offline   Reply With Quote
Old 08-10-2009, 09:23 PM   PM User | #11
Octovir
New to the CF scene

 
Join Date: Aug 2009
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Octovir is an unknown quantity at this point
PHP Code:
<?
function getDirectory($path '.'$ignore '') {
    
$dirTree = array ();
    
$dirTreeTemp = array ();
    
$ignore[] = '.';
    
$ignore[] = '..';

    
$dh = @opendir($path);

    while (
false !== ($file readdir($dh))) {

        if (!
in_array($file$ignore)) {
            if (!
is_dir("$path/$file")) {
                
                
$dirTree["$path"][] = $file;
                
            } else {
                
                
$dirTreeTemp getDirectory("$path/$file"$ignore);
                if (
is_array($dirTreeTemp))$dirTree array_merge($dirTree$dirTreeTemp);
            }
        }
    }
    
closedir($dh);
    
    return 
$dirTree;
}

$ignore = array('.htaccess''error_log''cgi-bin''php.ini''.ftpquota');

$dirTree getDirectory('/your/path/here'$ignore);
?>
<pre>
    <?
    print_r
($dirTree);
    
?>
</pre>
Not Sure if it's the best, and likely is not, but I modified the first function to get things working for now. This returns an array so that when i go back through the array, I can concatenate my keys with my values for use with something like fopen...
Octovir is offline   Reply With Quote
Old 10-06-2009, 09:06 AM   PM User | #12
joelbrock
New to the CF scene

 
Join Date: Oct 2009
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
joelbrock is an unknown quantity at this point
The getDirectory function is totally awesome! and exactly what i needed. here's the thing tho: when i was hacking it up on my dev box it was working great. but then, once i got it the way i wanted it, i uploaded the files to the web server, and now everything is coming up in random order.

is there a way to force it to read alphabetically? Is is my web server? is it something else entirely? anybody know of this issue?

TIA
~joel
joelbrock is offline   Reply With Quote
Old 10-06-2009, 09:09 AM   PM User | #13
joelbrock
New to the CF scene

 
Join Date: Oct 2009
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
joelbrock is an unknown quantity at this point
The getDirectory function is totally awesome! and exactly what i needed. here's the thing tho: when i was hacking it up on my dev box it was working great. but then, once i got it the way i wanted it, i uploaded the files to the web server, and now everything is coming up in random order.

is there a way to force it to read alphabetically? Is is my web server? is it something else entirely? anybody know of this issue?

TIA
~joel

Here's my code:
PHP Code:
function getDirectory$path '.'$level ){

    
$ignore = array( 'cgi-bin''.''..' );

    
$dh = @opendir$path );
    
    while( 
false !== ( $file readdir$dh ) ) ){
    
        if( !
in_array$file$ignore ) ){
            
            if( 
is_dir"$path/$file" ) ){
                
$dir $path $file;
                
                echo 
"<div class=\"highslide-gallery\">\n
                    <center>
                    <a id=\"gallery-opener\" href=\"javascript:;\" onclick=\"document.getElementById('thumb$level').onclick()\">$file</a>\n
                    </center>
                    <div class=\"hidden-container\">\n"
;
                    
                
$dh1 = @opendir$dir );

                while( 
false !== ( $image readdir$dh1 ) ) ){
                    if( !
in_array$image$ignore ) ){
                        if( !
is_dir"$dir/$image" ) ){
                            echo 
"<a id=\"thumb$level\" class='highslide' href='$dir/$image' title=\"\" onclick=\"return hs.expand(this, config$level)\">$image</a>\n";
                        }
                    }
                }
                echo 
"</div>\n</div>\n\n";
                
$level++;
            }
        }
    }
    
closedir$dh );
}

getDirectory('images/'); 
joelbrock is offline   Reply With Quote
Old 10-10-2009, 03:58 PM   PM User | #14
pittendrigh
New to the CF scene

 
Join Date: Oct 2009
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
pittendrigh is an unknown quantity at this point
graphical recursive directory lister

PHP Code:
<?php

/*
**   Put the following line into an index.php,
**   with first line: include_once("dirLister.class.php");
**   Then erase the following line.
*/
$dirLister = new dirLister();

/*
**   After running this once you will find two new files in the current directory:
**   config.ini
**   links.ini
**   Once they exist, you might want to edit them, as needed, to get what you want.
*/

class dirLister
{
  var 
$searchRootUrlPath;
  var 
$searchRootFilePath;
  var 
$currentDirUrlPath;
  var 
$currentDirFilePath;
  var 
$currentDisplayName=null;
  var 
$defaultDisplayName;
  var 
$linkTypes=array();
  var 
$links=array();
  var 
$allowedLinkTypesfile;
  var 
$config=array();
  var 
$dbg=false;
  
  function 
__construct()
  {
    
$this->init();
    
$this->readLinkTypes();
    
$this->getLinks();
    
$this->getDefaultDisplay();
    
$this->show();
  }
  
 function 
init()
 {
   if(@
stat("config.ini"))
   {
      
/* A config.ini file does exist. You can edit this file, as needed, to search any permissable directory. */
      
$lines file("config.ini");
      foreach (
$lines as $aline)
      {
             
$tokens explode("=",$aline);
             
$label trim($tokens[0]);
             
$value trim($tokens[1]);
             if(
stristr($label"path")){
               if(
strlen(strrchr($value,'/')) != 1){
                   
$value .= '/';
               }
             }
             
$this->config[$label] = $value;
      }
      
$this->searchRootUrlPath $this->config['searchRootUrlPath'];
      
$this->searchRootFilePath $this->config['searchRootFilePath'];
   }
   else
   {
        if(
strstr($_SERVER['SCRIPT_FILENAME'],"home"))
        {
            
/* no config.ini file exists.  If "home" appears in the path
            ** we'll make a desperate attempt to make this work. We'll assume
            ** the current path looks something like this (which it may not):
            **  /home/sandy/public_html/images/  
            */
            
$dirs explode('/',dirname($_SERVER['SCRIPT_FILENAME']));
            
$tmpUrlPath='/~' $dirs[2] ;
            
$zapper '/' $dirs[1] . '/'$dirs[2] . '/' $dirs[3] . '/';

            
$tmp ereg_replace($zapper,""dirname($_SERVER['SCRIPT_FILENAME']));
            
$tmpUrlPath .= '/'.$tmp '/';
            
$this->config['searchRootFilePath'] = dirname($_SERVER['SCRIPT_FILENAME']);
            
$this->config['searchRootUrlPath'] = $tmpUrlPath;
            
$this->searchRootFilePath $this->config['searchRootFilePath'];
            
$this->searchRootUrlPath $this->config['searchRootUrlPath'];
        }
        else
        {
            
/*
            **    No config.ini file exists. "home" does not appear in the path.
            **    So we'll assume we're in the global document root instead of a ~user/public_html directory 
            **    This should work, regardless $_SERVER['DOCUMENT_ROOT']
            */
            
$this->searchRootFilePath dirname($_SERVER['SCRIPT_FILENAME']).'/';
            
$this->searchRootUrlPath '/' ereg_replace($_SERVER['DOCUMENT_ROOT'],""$this->searchRootFilePath);
        }
   }

   if(isset(
$_GET['dbg']))
       
$this->dbg=true;

   if(
$this->dbg){
     echo 
"Url: "$this->searchRootUrlPath ,"<br>";
     echo 
"File: "$this->searchRootFilePath "<br>";
   }
   
$this->setCurrentDir();
 }

function 
setCurrentDir()
 {
   
$this->currentDirUrlPath $this->searchRootUrlPath;
   
$this->currentDirFilePath $this->searchRootFilePath;
   if(isset(
$_GET['page']))
   {
         
$parm preg_replace("/^\.+/",""$_GET['page']);
         
$parm preg_replace("/^\/+/",""$parm);
         if(
is_dir($this->currentDirFilePath $parm)){
             
$this->currentDirUrlPath =  $this->currentDirUrlPath $parm '/';
             
$this->currentDirFilePath =  $this->currentDirFilePath $parm '/';
         }else{
             
$this->currentDirUrlPath =  $this->currentDirUrlPath dirname($parm) . '/';
             
$this->currentDirFilePath =  $this->currentDirFilePath dirname($parm) .  '/';
         } 
   } 
   if(
$this->dbg){
         echo 
"currentDirUrlPath: "$this->currentDirUrlPath"<br>";
         echo 
"currentDirFilePath: "$this->currentDirFilePath"<br>";
   }
 }

 function 
defaultCSS()
 {

$css = <<< ENDO
body
{
  background: #eeeeff;
}

.shortlink
{
  background: #aaaaff;
  padding: 0.5em;
  margin: 0.5em;
  width: 10em;
  border: 3px outset #cccccc;
}

#wrapperDiv
{
  margin-left: auto;
  margin-right: auto;
  padding: 1em;
  width: 90%;
  height: 75%;
  position: relative;
  background: #ffaaaa; 
  height: 95%;
  border: 2px outset #888888;
}

#navigationDiv
{
  position: relative;
  float: left;
  margin: 0 auto;
  padding: 0.5em;
  background: #ffaaaa; 
  width: 35%;
}

#displayDiv
{
  float: left;
  margin: 0 auto;
  padding: 0.5em;
  background: #ffaaaa; 
  width: 50%;
  min-height: 98%;
}

p.linkp
{
  background: #aaaaff;
  padding: 0.5em;
  margin: 0.5em;
  width: 90%;
  border: 3px outset #cccccc;
}

a:{ text-decoration: none; }
a:hover{  text-decoration: underline; font-style: italic; font-weight: bold; }
p.linkp:hover{  border: 3px inset #cccccc;  }

a.buttonlike 

  text-decoration: none; 
  display: inline; 
  background: #aaaaff; 
  padding: 0.5em; 
  margin: 0.5em; 
  width: 5em; 
  border: 3px outset #cccccc;
}
a.buttonlike:hover { text-decoration: underline; font-style: italic; font-weight: bold; }
ENDO;

   
$fp fopen("utils.css""w");
   if(
$fp == null)
     
$this->fatalError("could not open missing utils.css for writing");
   
fwrite($fp$css);
   
fclose($fp);
 }

 function 
fatalError($msg)
 {
    echo 
"<b>ERROR: </b>"$msg"<br>";
    exit();
 }

 function 
getDefaultDisplay()
 {
    if(isset(
$_GET['page']))
    {
        if(!
is_dir($this->currentDirFilePath.$_GET['page'])) 
           
$this->currentDisplayName  basename($_GET['page']);
    }
    else
        
$this->currentDisplayName=$this->defaultDisplayName;

    if(
$this->dbg){
       echo 
"currentDisplayName: "$this->currentDisplayName"<br>";
    }
    return 
$ret;
 }

 function 
linkTypeDefaults()
 {
   
$linktypes = <<< ENDO
html=link
htm=fragment
php=link
txt=text
jpeg=image
gif=image
jpg=image
JPG=image
JPEG=image
pdf=link
xls=link
doc=link
gz=link
tar=link
zip=link
pdf=link
mpe=link
mpeg=link
mpg=link
mov=link
mp3=link
wav=link
ENDO;

   
$fp fopen("links.ini""w");
   if(
$fp == null)
     
$this->fatalError("could not open missing utils.css for writing");
   
fwrite($fp$linktypes);
   
fclose($fp);
 }

 function 
readLinkTypes() 
 { 
  if(!@
stat("links.ini")){
    
$this->linkTypeDefaults();     
  }
  
$this->allowedLinkTypesfile="links.ini";
  
$inilines=file($this->allowedLinkTypesfile); 
  foreach (
$inilines as $aline)
  {
      
$tokens explode('=',$aline);
      
$this->linkTypes[trim($tokens[0])] = trim($tokens[1]);
   }
 }

 function 
show()
 {
    echo 
$this->startHTML();
    echo 
$this->mkNavigationDiv();
    echo 
$this->mkDisplayDiv();
    echo 
$this->endHTML();
 }

 function 
validLink($path)
 {
     
$ret false;
     
$suffix $this->getSuffix($path);
     if(isset(
$this->linkTypes[$suffix])){
           
$ret true
     }
     return 
$ret;
 }
   
 function 
mkLink($page)
 {
     
$linktype trim($this->links[$page]);

     if(
$this->links[$page] == "dir")
       
$relativePath ereg_replace($this->searchRootUrlPath,"",$this->currentDirUrlPath).$page;
     else
       
$relativePath ereg_replace($this->searchRootUrlPath,"",$this->currentDirUrlPath);

     
$relativePath preg_replace("/^\.\//","",$relativePath);

     
$ret '<p class="linkp">'
     if (
$linktype == "link"){
        
$ret .= '<a href="'
               
.ereg_replace(dirname($this->searchRootUrlPath)
               .
'/',"",$this->currentDirUrlPath).$page.'">'.$page.'</a>';
     }
     else if(
$linktype == "image"){
        
$ret .= '<a href="'$_SERVER['PHP_SELF'].'?page='.$relativePath.$page.'">'.$page.'</a>';
     }
      
     else if(
$linktype == "text"){
        
$ret .= '<a href="'$_SERVER['PHP_SELF'].'?page='.$relativePath.$page.'">'.$page.'</a>';
     }
     else if(
$linktype == "fragment"){
        
$ret .= '<a href="'$_SERVER['PHP_SELF'].'?page='.$relativePath.$page.'">'.$page.'</a>';
     }
     else if(
$linktype == "dir"){
        
$ret .= '<a href="'$_SERVER['PHP_SELF'].'?page='.$relativePath.'"> ./'.$page.'</a>';
     }
     
$ret .= '</p>'."\n";
   
     return 
$ret;
 }
   
 function 
getLinks()
 {
     if (
$dir_handle = @opendir($this->currentDirFilePath))
     {
       while   ((
$ffile   =   readdir($dir_handle))   !==   false)
       {
         
$file trim($ffile);
         if(
$file[0]   !==   '.')
         {
             if(
$this->validLink($file)){
                 
$linkType $this->linkTypes[$this->getSuffix($file)];
                 if(
$this->defaultDisplayName==null  && (
                       
$linkType == 'image' 
                    
|| $linkType == 'fragment'  
                    
|| $linkType == 'text'  
                  
)){
                     
$this->defaultDisplayName $file;
                    }
                 
$this->links[trim($file)]   =  trim($linkType);
             }else if(
is_dir($this->currentDirFilePath $file))
             {
                 
$this->links[trim($file)]   =  "dir";
             }
       }
     }
       
closedir($dir_handle);
     }
  }
   
  function 
mkNavigationDiv()
  {
    
$ret '  <div id="navigationDiv">'."\n";
    foreach (
array_keys($this->links) as $akey)
    {
     
$ret .= $this->mkLink($akey); 
    }

    
$test1 basename(dirname($this->currentDirUrlPath));
    
$test2 basename(dirname($this->searchRootUrlPath));
    
    
$upHref=''
    if(
$test1 != $test2)
    { 
       
$tmp dirname($this->currentDirUrlPath) . '/';
         
       if(
$test1 == basename($this->searchRootUrlPath)) {
         
$upHref $_SERVER['PHP_SELF']; 
       }
       else {
         
$upHref $_SERVER['PHP_SELF'].'?page='.$test1;
       }
       
$ret .= '<br><a href="'.$upHref.'"> <b>Move Up</b> </a><br>';
    }
    
$ret .= ' </div>';
   
    return (
$ret);
  }

  function 
mkImageArea()
  {
    
$ret '';
    if(
$this->links[$this->currentDisplayName] == null)
      
$ret '<img src="'.$this->currentDirUrlPath $this->defaultDisplayName.'" alt="'.$this->defaultDisplayName.'">';
    else
      
$ret '<img src="'.$this->currentDirUrlPath $this->currentDisplayName.'" alt="'.$this->currentDisplayName.'">';
    return 
$ret;
  }

  function 
mkLinkArea()
  {
    return 
"<b>" $this->searchRootUrlPath $this->currentDisplayName "</b><br>";
  }

  function 
mkTextArea()
  {
    
$ret='';
    
$lines file ($this->searchRootFilePath .$this->currentDisplayName);
    foreach (
$lines as $aline)
    {
      
$ret .= $aline "<br>";
    }
    return 
$ret;
  }

  function 
mkHTMLFragmentArea()
  {
    return 
file_get_contents($this->searchRootFilePath .$this->currentDisplayName);
  }

  function 
getDisplay()
  {
       
$ret='';
       
$linktype $this->links[trim(basename($this->currentDisplayName))];
       if(
$linktype == null){
          if(
is_dir($this->currentDirFilePath)){
              
$linktype $this->links[trim(basename($this->defaultDisplayName))];
          }
       }
       switch(
$linktype)
       {
          case 
"dir":
            
$ret $this->mkImageArea(); 
            break;
          case 
"image":
            
$ret $this->mkImageArea(); 
            break;
          case 
"text":
            
$ret $this->mkTextArea(); 
            break;
          case 
"fragment":
            
$ret $this->mkHTMLFragmentArea(); 
            break;
       }
       return 
$ret;
  }
   
  function 
mkDisplayDiv()
  {
     
$ret ' <div id="displayDiv">';
     
$ret .= $this->getDisplay();
     
$ret .= ' </div>'."\n";
     return 
$ret;
  }

  function 
startHTML()
  {
    if(!@
stat("utils.css"))
      
$this->defaultCSS();

     
$ret '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>gallery version chooser</title>
  <link rel="stylesheet" href="utils.css" type="text/css">
 </head>
 <body>'
."\n";
  
    
$ret .= '<div id="wrapperDiv">'."\n"
    return 
$ret;
  }
  
  function 
endHTML()
  {
    return 
"\n" '</div></body></html>'"\n";
  } 
  
  function 
getSuffix($file$withdot=null)
  {
     
$suffix substr(strrchr(basename($file),'.'),1);
     if(isset(
$withdot))
        
$suffix '.' $suffix;
     return 
$suffix;
  }
  
  function 
stripSuffix($file)
  {
   
$suffix getSuffix($file"withdot");
   return 
preg_replace("/$suffix/"""$file);
  }
}

?>

Last edited by Fou-Lu; 10-11-2009 at 06:26 AM..
pittendrigh is offline   Reply With Quote
Old 02-25-2010, 02:41 PM   PM User | #15
Stephane3d
New to the CF scene

 
Join Date: Feb 2010
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Stephane3d is an unknown quantity at this point
Exclamation Order files alphabetically?

Hi,

This script works pretty well except that the files list is not ordered. I'd like to sort it alphabetically. Any idea how to do that?

For example, I got this:

0012.jpg
0011.pdf
0024.pdf
0004.jpg
0018.pdf
0008.pdf

While I'd like to get this:

0004.jpg
0008.pdf
0011.pdf
0012.jpg
0018.pdf
0024.pdf

Thanks for any help.
Stephane3d is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 08:56 AM.


Advertisement
Log in to turn off these ads.