Php 如何在目录中创建文件分页?
我使用以下代码列出了一个目录中的所有特定文件(*.htm):Php 如何在目录中创建文件分页?,php,jquery,html,css,pagination,Php,Jquery,Html,Css,Pagination,我使用以下代码列出了一个目录中的所有特定文件(*.htm): <?PHP $iterator = new FilesystemIterator('..\articles/'); foreach($iterator as $fileInfo){ if($fileInfo->isFile()){ $cTime = new DateTime(); $cTime->setTimestamp($fileInfo->getCTime());
<?PHP
$iterator = new FilesystemIterator('..\articles/');
foreach($iterator as $fileInfo){
if($fileInfo->isFile()){
$cTime = new DateTime();
$cTime->setTimestamp($fileInfo->getCTime());
echo "<div id='NewsWrap'>"
. "<div id='NewsTitle'>"
. "<a href='http://localhost/test/articles/" . basename($fileInfo->getFileName()) . "'>" . basename($fileInfo->getFileName(), '.htm') . "</a></div>"
. "<div id='NewsCreation'>" . "on " . $cTime->format('d-m-Y') . " by : Admin</div>"
. "</div>";
}
}
?>
我认为没有理由不使用而不是文件系统发射器()
Scandir()
将返回指定路径内的文件(和目录)数组。您也可以使用排序顺序
对它们进行任意排序
var files = scandir('..\articles/');
var page = 1; //change when new page is requested
var FILES_PER_PAGE = 10;
for (i = page * FILES_PER_PAGE; i < page * FILES_PER_PAGE + FILES_PER_PAGE; i++) {
//display HTML
}
var files=scandir('..\articles/');
var-page=1//请求新页面时更改
每个页面的var文件=10;
对于(i=page*FILES\u PER\u page;i
您会注意到,page*FILES\u PER\u page
为要显示的页面创建下限,page*FILES\u PER\u page+FILES\u PER\u page
创建上限。如果您不想使用jQuery
则分页显示文件的唯一方法是需要显示/隐藏文件名,例如
您需要计算在文件夹中找到的文件总数
然后,您需要使用每个页码的文件来获得页码,例如,您有52个文件,并且您希望每页显示10个文件,那么您的总页数为6((int)52/10+((52%10)>0?1:0))
对于额外的2个文件,我们需要获得一个额外的页面,这就是我为什么使用((52%10)>0?1:0)
不,您需要创建分页链接(从第二点开始,您需要创建6个链接)
默认情况下,将显示起始10(显示的页数),其余文件名将隐藏
否当单击页码时,您需要显示该页码的文件,其余文件名将隐藏。例如,如果单击3,则会显示29到39个索引文件(从0开始),而rest文件是隐藏的
但是如果您使用jQuery,那么实现它就很容易了,而且不会有太大的复杂性。请尝试使用代码段显示/隐藏文件
$('.pagination li')。在('click',function()上{
p=$(this).data('page'),
$list=$('.list');
$list.find('li[数据文件页!=“+p+”).hide();
$list.find('li[data filePage=“”+p+“]”).show();
});代码>
.list{list style:none}
.list li{显示:无;}
.pagination{列表样式:无;}
.pagination li{float:left;padding:0 5px;border:1px solid#444;cursor:pointer;margin:0 2px}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
var files = scandir('..\articles/');
var page = 1; //change when new page is requested
var FILES_PER_PAGE = 10;
for (i = page * FILES_PER_PAGE; i < page * FILES_PER_PAGE + FILES_PER_PAGE; i++) {
//display HTML
}