PHP自动遍历文件夹下图片及分页处理

PHP实现自动遍历当前月份文件夹下的所有图片,并根据图片文件名获取图片信息,并做分页处理,最后以数组形式保存相关信息。

相关代码如下:

public function imageList() {

$page = $this->request->getParameter('page') ? trim($this->request->getParameter('page')) : 1;
$psize = 1000;

$output = array(
'totalPage' => 0,
'page' => $page,
'pageSize' => $psize,
'data' => array()
);

$path = './upload/'.date('Y/m',time()).'/';

//判断文件夹是否存在
if(!is_dir($path)) {
$this->outputJson($output);
exit;
}
$handle = opendir($path);

//遍历文件夹下所有图片
$arr = array();
$i = 0;
while (false !== ($file = readdir($handle))) {

$file = iconv("gb2312", "UTF-8", $file);
list($filesname,$ext)=explode(".",$file);

if($ext=="gif" or $ext=="jpg" or $ext=="png") {
if (!is_dir('./'.$file)) {
$arr[]=$file;
$i++;
}
}
}

$count = count($arr);

if($count > 0) {
$totalPage = ceil($count / $psize);

if ($page > $totalPage) {
$page = $totalPage;
}
$output['totalPage'] = $totalPage;

//文件夹下所有图片分页
$begin = $psize * ($page - 1);
$over = $psize*$page;

for ($j=$begin; $j<$over && $j<$i; ++$j){ $info = explode('.',$arr[$j]); list($id,$name,$time) = explode('_', $info[0]); $imgInfo = array( 'id' => $id,
'name' => $name,
'time' => $time,
'src' => $path.$arr[$j]
);

$output['data'][] = $imgInfo;
}
}
closedir($handle);
}

当然代码不够完美,需要改进,有高手的话求指点。