PHP获取文件夹内的图片,并按图片更新时间降序排列

    很简单,直接上代码:

    $imgInputId = func::get('imgInputId');   //返回值的图片框id
    $selectImg = func::get('selectImg');     //已选择的图片名称,带后缀
    $path = '/usr/local/images/';
    $dir = @ opendir($path);
        $fileFormat = array(0 => ".jpg", 1 => ".gif", 2 => ".png", 3 => ".bmp");
        while (($file = readdir($dir)) !== false) {
            $file_times = filemtime($path.$file) == false ? (filectime($path.$file) == false ? '' : filectime($path.$file)) : filemtime($path.$file);
            if (in_array(substr($file, strpos($file, ".")), $fileFormat) && !empty($file_times)) {
                $ImgArr[$file] = $file_times;
            }
        }
        //按文件修改时间排序
        arsort($ImgArr);
        //列出 images 目录中的文件
        echo "<table width=630 border=0 cellspacing=0 cellpadding=5><tr>";
        $file_num = 0;
        if(!empty($ImgArr) && count($ImgArr)>0){
            foreach($ImgArr as $file =>$v ){
                $file_num++;
                echo '<td align=center ';
                if($file == $selectImg)
                    echo 'style="border:2px solid #2D4891"';
                echo '><a href="###" onclick="javascript:parent.document.getElementById(\''.$imgInputId.'\').value=\'' . $file . '\';" title="' . $file . '"><img src="' . $path2 . $file . '" width="50" height="50"></a><br />' . $file . '</td>';
                if ($file_num % 5 == 0) {
                    echo "</tr>";
                }
            }
        }
        echo "</tr></table>";
        closedir($dir);

    附:文件属性函数   


    1> filemtime ( string filename )
    返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix 时间戳的方式返回,可用于 date()。
    例如:$a=filemtime("log.txt");
               echo "修改时间:".date("Y-m-d H:i:s",$a);
    2> filectime ( string filename )
    返回文件上次 inode 被修改的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。
    例如:$a=filectime("log.txt");
               echo "创建时间:".date("Y-m-d H:i:s",$a);
    3> fileatime ( string filename )
    返回文件上次被访问的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。
    例如:$a=fileatime("log.txt");
              echo "修改时间:".date("Y-m-d H:i:s",$a);
    4> filesize( string filename )
    函数返回指定文件的大小。若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。
    例如:echo "文件大小" .filesize("test.txt");

相关推荐