php如何读取文件夹目录里的文件并按照日期,大小,名称排序并安装分页显示

//直接上干货

//分页
global $totalpage; #定全局变量
//$pagesize = 12;
$pagesize=(empty(Yii::$app->request->get(‘pagesize’)))?12:intval(Yii::$app->request->get(‘pagesize’)); #判断当前页面是否为空 如果为空就表示为第一页面
$currentpage=(empty(Yii::$app->request->get(‘p’)))?1:intval(Yii::$app->request->get(‘p’)); #判断当前页面是否为空 如果为空就表示为第一页面

//die(‘here’);
/**
* 【php获取目录中的所有文件名】
*/

//1、先打开要操作的目录,并用一个变量指向它
//打开当前目录下的目录pic下的子目录common。
$folder = Yii::$app->request->get(‘folder’);
$handler = opendir(‘/www/wwwroot/appshanhubei/web/attachment/img/’.$folder);

//2、循环的读取目录下的所有文件
//其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫’0′,或者某些被系统认为是代表false,用!=就会停止循环*/
$data = array();
$cfiletime = array();
while( ($filename = readdir($handler)) !== false ) {
//3、目录下都会有两个文件,名字为’.’和‘..’,不要对他们进行操作
if($filename != “.” && $filename != “..” && !is_dir(‘/www/wwwroot/appshanhubei/web/attachment/img/’.$folder.’/’.$filename)){
//4、进行处理
//$cfilesize[] = round((filesize($path)/1024),2);//获取文件大小
//$cfilename[] = $path;//获取文件名称
//$cfiletime[] = date(“Y-m-d H:i:s”,filemtime(‘/www/wwwroot/appshanhubei/web/attachment/img/’.$folder.’/’.$filename));//获取文件最近修改日期
$cfiletime[] = filemtime(‘/www/wwwroot/appshanhubei/web/attachment/img/’.$folder.’/’.$filename);//获取文件最近修改日期
//echo date(“Y-m-d H:i:s”,filemtime(‘/www/wwwroot/appshanhubei/web/attachment/img/’.$folder.’/’.$filename));
//这里简单的用echo来输出文件名
$data[] = ‘https://app.shanhubei.com/attachment/img/’.$folder.’/’.$filename;
}
}

//5、关闭目录
closedir($handler);
// 排序
array_multisort($cfiletime,SORT_DESC,SORT_NUMERIC, $data);//按时间排序
//print_r($cfiletime);
//array_multisort($filename,SORT_DESC,SORT_STRING, $files);//按名字排序
//array_multisort($filesize,SORT_DESC,SORT_NUMERIC, $return);//按大小排序
$totals = count($data);//总条数
$totalpage=ceil($totals/$pagesize); #计算总页面数
$start=($currentpage-1)*$pagesize;//偏移量,当前页-1乘以每页显示条数
$pagedata=array();
$pagedata=array_slice($data,$start,$pagesize);

$res = [
‘code’ => 200,
‘message’ => ‘ok’,
‘currentpage’ => $currentpage,
‘totalpage’ => $totalpage,
‘pagesize’ => $pagesize,
‘data’ => $pagedata,
];
echo json_encode($res);
die();

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?