php获取目录下的所有文件并按时间排序

php获取目录中的所有文件名

1、先打开要操作的目录,并用一个变量指向它

打开当前目录下的目录pic下的子目录common。

$handler = opendir(’pic/common’);

2、循环的读取目录下的所有文件

其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫’0′,或者某些被系统认为是代表false,用!=就会停止循环

  1. while( ($filename = readdir($handler)) !== false )
  2. {
  3. 3、目录下都会有两个文件,名字为’.'和‘..’,不要对他们进行操作
  4. if($filename != “.” && $filename != “..”)
  5. {
  6. 4、进行处理
  7. //这里简单的用echo来输出文件名
  8. echo $filename;
  9. }
  10. }

5、关闭目录

closedir($handler);

php获取目录下的所有文件并按文件创建时间进行排序,php按文件创建/修改时间排序

  1. function getFile($dir=''){
  2. $num=1; //用来记录目录下的文件个数
  3. $dirname='../testdir'; //要遍历的目录名字
  4. $dir_handle=opendir($dirname);
  5. while($file=readdir($dir_handle)){
  6. if($file!="."&&$file!=".."&&$file!="index.php"){
  7. $key = filectime($file)*1000+rand(100,999); //根据文件创建时间生成key
  8. $files[$key] = $file;
  9. $num++;
  10. }
  11. }
  12. ksort($files);
  13. foreach($files as $ky => $val){
  14. $dirFile=$dirname."/".$val;
  15. $res .= tabledata($num.'|<a href="'.$val.'" target="_blank">'.$val.'</a>|'.filesize($dirFile).'|'.filetype($dirFile).'|'.date("Y/n/t H:i:s",filemtime($dirFile)));
  16. }
  17. return $res;
  18. closedir($dir_handle);
  19. }