Skip to main content

PHP script to list files in a given directory using opendir, readdir and glob functions



PHP script to list files in a given directory

The below given script goes through a given directory and list the name of the files in the order as it is stored in the file system.

The first script uses a directory handler to operate on a given directory. It opens the handler, reads file entries one by one by looping through the directory (during this step you can process the file ) and finally close the handler


// Source folder - Folder from where you want to list records
$path = "YourFolder/";

//Create and Open directory handle
if ($handle = opendir($path)) {

//Read entry from directory handle
while (false !== ($file = readdir($handle))) {

// do something with the file

if ('.' === $file)
continue;
elseif ('..' === $file)
continue;
else
echo("<a href='".$path.$file."'>".$file."</a> Last updated on: ".date("M d Y h:i A", filectime($path.$file))."<br/>");


}

//Close directory handle
closedir($handle);
}



opendir($path) : opendir() Opens a directory handler. This handler is used by directory specific functions like readdir(), closedir() etc.
readdir($handle) : readdir() reads each entry in the folder using the directory handle opened by opendir(). using a while loop we can iterate the directory and list the files
closedir($handle): closedir() closes the directory handle opened by opendir()


Directory looping using GLOB function

The above given function is rewritten by using glob function:

// Source folder - Folder from where you want to list records
$path = "YourFolder/";

$files = glob( $path."*.*" ); // to avoid hidden files by using a pattern match

// display the file names if there are any contents in the folder
if(count($files)){

for( $i=0 ; $i < count($files) ; $i++ ){
echo("<a href='".$file[$i]."'>".str_replace($path,"",$files[$i])."</a> Last updated on: ".date("M d Y h:i A", filectime($files[$i]))."<br/>");
}

}



How glob() can replace opendir() ?
glob() returns an array of file names which matches the given the string pattern. Loop through the file array to list the records.


Display Files in a directory based on last modified date
If you want to sort and list the filenames based on the last updated date add a small statement to the above mentioned code:

// Source folder - Folder from where you want to list records
$path = "YourFolder/";

$files = glob( $path."*.*" ); // to avoid hidden files by using a pattern match

// Sort files by modified time, latest to oldest
array_multisort(array_map( 'filemtime', $files ),SORT_NUMERIC,SORT_DESC,$files);


// display the file names if there are any contents in the folder
if(count($files)){

for( $i=0 ; $i < count($files) ; $i++ ){
echo("<a href='".$file[$i]."'>".str_replace($path,"",$files[$i])."</a> Last updated on: ".date("M d Y h:i A", filectime($files[$i]))."<br/>");
}

}

array_map() — Applies the callback to the elements of the given arrays. This function returns an array containing all the elements of array1 after applying the callback function to each one.
array_multisort — Sort multiple or multi-dimensional arrays. It can be used to sort several arrays at once, or a multi-dimensional array by one or more dimensions.


Popular posts from this blog

Sachin Tendulkar's emotional farewell Speech at Wankhede Stadium, Mumbai - Full Text and Video

Full Text and Video of Sachin Tendulkar's emotional farewell Speech on Nov 16, 2014 On November 16, 2013 - Sachin Ramesh Tendulkar played his last international cricket match against West-Indies at the at Wankhede Stadium, Mumbai. After the match he gave an emotional farewell speech. No one would be able forget the speech. The eyes of the gathered people were tearfull. Through out the speech Sachin thanked each and everyone who supported and encouraged him to build up his glorius career which spanned 24 years.

How to loop through the items in a select box using Javascript?

Looping through the items in a select box using JS Use the code given below to parse through the options in a select box and alert the Text and Value of each options. you can alter the function as per your need. sample code is given below: <form> <select id="test" name="test"> <option value="First Value" >First Text</option> <option value="Second Value" >Second Text</option> <option value="Third Value" >Third Text</option> <option value="Fourth Value" >Fourth Text</option> <option value="Fifth Value" >Fifth Text</option> </select> <input type="button" value="Check" onclick="loopSelectBox('test')" > </form> <script> function loopSelectBox(selectBoxId){ var obj=document.getElementById(selectBoxId); for(i=0; i < obj.options.length ;i++){ alert("Value :...

Autobiography by Cricket legend Sachin Tendulkar "Sachin Tendulkar - Playing it My Way : My Autobiography"

Autobiography by Cricket legend Sachin Tendulkar Cricket batting legend Sachin Ramesh Tendulkar's  autobiography was released on November 5, 2014 in a high profile launch function in Mumbai. . Earlier  on his Twitter page Sachin has announced the release date of his Autobiography " Sachin Tendulkar - Playing it My Way : My Autobiography "   as November 6th 2014 , but the book was released a day earlier. It took three years to write this book which he says as the Second innings of his life. Sachin Ramesh Tendulkar, the all time Genius of World Cricket was born on April 24, 1973 at Bombay (now Mumbai) in Maharashtra. He hold the record for scoring most runs and hundreds in Tests and ODIs. He scored a total of more than 34000 runs from One day Internationals (ODI's) and tests. He was part of the World cup winning team of 2011. He was a great all rounder. His  debut match was against    Pakistan  at Karachi during Nov 15-20, 1989. He played h...


Urgent Openings for PHP trainees, Andriod / IOS developers and PHP developers in Kochi Trivandrum Calicut and Bangalore. Please Send Your updated resumes to recruit.vo@gmail.com   Read more »
Member
Search This Blog