【发布时间】:2015-02-14 08:38:52
【问题描述】:
问了这个,但仍然没有得到适合这个的正确代码。我不想更改代码的原因是分页系统有效。
我尝试了arsort、rsort 和许多其他排序功能,但图像仍然没有显示我目录中的最近图像。
<?php
$page = "";
$record_count = 100;
$dir = ('uploaded/');
$offset = ($page-1)*$record_count;
$files = glob("uploaded/*.*");
$files_filter = array(arsort($files,$record_count));//made sorting changes here
$images = array(arsort(glob($dir . '*.*', GLOB_BRACE)));
$latestimage = $images[0];
$large = '';
$allow = array('jpg','jpeg','gif','png', 'JPEG', 'JPG','GIF','PNG');
$i=0;
$open = opendir($dir);
// get each filename from directory
while (($file=readdir($open))!==false) {
// get extension
$ext=str_replace('.', '', strrchr($file, '.'));
// does it have a valid extension
if (in_array($ext, $allow))
$list[$i++]=$file; // store valid filename in array. use numerical indexing as makes it easier to display paginated images later
}
$perPage=20; // number of images to show per page
$total=count($list); // total number of images to show
$pages=ceil($total/$perPage); // number of pages is the number of images divided by how many per page
$thisPage=isset($_GET['pg'])?$_GET['pg']-1:0; // did user select a specific page? Note, pages on web are counted from 1 (not zero) so must subtract 1 for correct indexing
$start=$thisPage*$perPage; // calculate starting index into list of filenames
$perRow=2; // how many images to be shown on each row
// display quick index to pages. all pages except current page output as a link
print "Page ";
for ($i=0;$i<$pages;$i++)
if ($i==$thisPage)
print " ".($i+1);
else
print " <a href='?pg=".($i+1)."'>".($i+1)."</a>";
print "<tr>";
$imgCnt=0; // used to count number of images displayed and hence whether to wrap page. note, could use "for" index $i but this is computationally quicker
for ($i=$start;$i<$start+$perPage;$i++) {
// may be too few images to fill page, so check if we have a valid array index. if we don't output empty table cell so fussy browsers
// don't mis-display table due to missing cells
if (isset($list[$i]))
print "<td><a target='_new' href='$dir$large{$list[$i]}'><img style='height:180px;width:180px; border:2px solid black; margin:20px 0px 10px 10px; *margin:10px 0px 10px 20px;' style='border-color:#000000 ' border='1' src='$dir{$list[$i]}'></a></td>";
else
print "<td></td>";
$imgCnt+=1; // increment images shown
if ($imgCnt%$perRow==0) // if image count divided by number to show per row has no remainder than it's time to wrap
print "</tr><tr>";
}
print "</tr>";
closedir($open);
?>
【问题讨论】:
标签: php image sorting directory