我已经使用此代码列出了一个目录中的所有特定文件 (*.htm):
<?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>";
}
}
?>
因为显示了这么多文件,所以我想进行分页(每个 pa 10 个文件)..但我不知道用我的代码来做到这一点..
而且我不想使用 jquery,但如果有必要......那就这样吧。
编辑:另一种方法
<?PHP
$offset = 2;
$quantity = 5;
$filelist = scandir('../articles/', 0);
$selectedFiles = array_slice($filelist, $offset, $quantity);
foreach($selectedFiles as $SplFileInfo)
{
if (!is_dir("../articles/". $SplFileInfo))
{
echo "<div id='NewsWrap'>"
. "<div id='NewsTitle'>"
. "<a href='http://localhost/test/articles/" . basename($SplFileInfo) . "' target='IFContent'>" . basename($SplFileInfo, '.htm') . "</a></div>"
. "<div id='NewsCreation'>on " . date ("d F Y", filemtime("../articles/". $SplFileInfo)) . " by : Admin</div>"
. "<div id='NewsDemo'>" . file_get_contents('../articles/'. $SplFileInfo) . "')</div>"
. "</div>";
}
}
?>
但我仍然没有运气来创建分页号.. 有人可以稍微修改一下我的代码以添加分页号吗?
谢谢。
最佳答案
我认为没有理由不使用 scandir()
而不是 Filesystemiterator()
。 Scandir()
将返回指定路径内的文件(和目录)数组。您也可以使用 sorting order
根据需要对它们进行排序。
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
}
您会注意到 page * FILES_PER_PAGE
创建要显示的页面的下限,而 page * FILES_PER_PAGE + FILES_PER_PAGE
创建上限。
关于php - 如何在目录中创建文件分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123222/