PHP: Simple Script to Retrieve the Newest File in a Folder CodeUnit 31 OCT 2011

Not particularly efficient for very large folders of course, but this simple little script will successfully check the last modified timestamp of files in a folder to determine the newest most fresh file contained within, before forcing a page redirect to the file, useful if you say want to show for instance the latest image file contained in a directory.

//determing the latest file in a folder and redirecting to it

//get the correct file path to use
$documentRoot =$_SERVER['DOCUMENT_ROOT']; 
//set the folder path to the target folder
$folder = $documentRoot . DIRECTORY_SEPARATOR . 'myfolder'; 

//variable to hold the newest file path
$newestFile = ''; 

//loop through the target directory. If file, compare the modified time to the currently set newest file. Update accordingly.
if (is_dir($folder)){ 
	foreach (scandir($folder) as $node) { 
		$nodePath = $folder . DIRECTORY_SEPARATOR . $node; 
		if (!is_dir($nodePath)){ 
		    if ($newestFile == ''){ 
		        $newestFile = $nodePath; 
		    } else { 
		        if (filemtime($nodePath) > filemtime($newestFile)){ 
			$newestFile = $nodePath; 

//force redirect to the latest file, otherwise print an error message
if (is_file($newestFile)){ 
	header('location: ' . str_replace($documentRoot . DIRECTORY_SEPARATOR . 'comics','http://' . $_SERVER['SERVER_NAME'] . '/myfolder',$newestFile)); 
} else { 
	echo '

Unable to determine latest file in the specified folder.

'; }

Like I said, not the most efficient of methods for very large folders, but simple enough to do the job for those smaller ones!

Related Posts:

About Craig Lotter

South African software architect and developer at Touchwork. Husband to a cupcake baker and father to two little girls. I don't have time for myself any more.