Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

display from directory

Posted on 2008-06-24
5
Medium Priority
?
179 Views
Last Modified: 2010-04-06
Hi,

I need to know how I can get last ten file in the directory using PHP ?? Thanks
0
Comment
Question by:usmbay
  • 2
  • 2
5 Comments
 
LVL 1

Expert Comment

by:Neoific
ID: 21856557
How do you want them to be sorted?
0
 
LVL 1

Expert Comment

by:morristhebear
ID: 21858664
I've just written this for you, hopefully it will do the trick.  It's a function that returns the last 10 files modified in a given directory.  It has an optional parameter so you can specify how many files to return, if left blank, it defaults to 10.  The files are returned sorted in descending order.  You could list the files using a foreach loop.

E.G:

$files = list_files ("C:\\");
foreach ($files as $k => $v) {
    echo "$v<br />\n";
}

Hope this helps.

More Example Usage:

print_r ( list_files ("C:\\"));    //  Lists the last 10 modified files in the C:\ drive.
print_r ( list_files ("C:\\Program Files\\", 20));   // Lists the last 20 modified files in Program Files


<?php
	
	function list_files ($string_dir, $int_limit = 10) {
		$files = array();
		//	Get all the files in the directory, along with the last modified date.
		if ($dir_handle = opendir ($string_dir)) {
			while (false !== ($file = readdir ($dir_handle))) {
				$files[date("YmdHis", filemtime($string_dir . $file))] = $file;
	    	}
	    	krsort ($files);
	    	$files = array_chunk ($files, $int_limit, true);
	    	return $files[0];
		}
		return false;
	}
?>

Open in new window

0
 

Author Comment

by:usmbay
ID: 21860178
in this query the file_name represent the file name but the problem is the pdf_files includes all the files name either exist or not so when I excute the query it return all files name but  they're not physically exist
so I need to return file_name physically exist only in the directory

SELECT      file_name  FROM pdf_files;

file_name from the database
101
102
103
104
105

but what's in the directory is till 103 only so in the query return only up to 103.pdf  

Thanks
0
 
LVL 1

Accepted Solution

by:
morristhebear earned 1500 total points
ID: 21860289
OK.  You can use the file_exists function with a loop and break out of it once you find a file that isn't found.  The snippet below should send you in the right direction, you will need to change the file_exists part where it says path to point to your directory where the PDF files are stored.

Hope this helps.
<?php
	
	$query = "SELECT file_name FROM pdf_files";
	while ($row = mysql_fetch_array($query)) {
		if (file_exists('path' . $row['file_name'] . '.pdf')) {
			echo $row['file_name'] . "<br />\n";
		} else {
			break;
		}
	}
	
?>

Open in new window

0
 

Author Comment

by:usmbay
ID: 22000811
ok it works but it return the files from last year it's log list , is there a way to return last 10 file only
Thanks
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
These days, all we hear about hacktivists took down so and so websites and retrieved thousands of user’s data. One of the techniques to get unauthorized access to database is by performing SQL injection. This article is quite lengthy which gives bas…
This video teaches users how to migrate an existing Wordpress website to a new domain.
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.
Suggested Courses
Course of the Month20 days, 19 hours left to enroll

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question