我使用以下代码列出了一个目录中的所有特定文件(* .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>";
}
}
?>
因为显示了很多文件,所以我想制作分页(每个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>";
}
}
?>
但我仍然没有运气来创建分页号码.. 有人可以修改我的代码添加分页号码吗??
感谢。
答案 0 :(得分:0)
我认为没有理由不使用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
创建了上限。
答案 1 :(得分:0)
如果您不想使用jQuery
,那么在分页中显示文件的唯一方法是您需要显示/隐藏您的文件名,例如,
((int)52/10+((52%10)>0?1:0))
额外的2个文件我们需要获得额外的页面,以便我使用((52%10)>0?1:0)
。但是如果你使用jQuery那么很容易实现它而没有任何重大的复杂性。尝试使用代码段来显示/隐藏文件。
$('.pagination li').on('click',function(){
p=$(this).data('page'),
$list=$('.list');
$list.find('li[data-filePage!="'+p+'"]').hide();
$list.find('li[data-filePage="'+p+'"]').show();
});
&#13;
.list{list-style:none}
.list li{display:none;}
.pagination{list-style:none;}
.pagination li {float:left;padding:0 5px;border:1px solid #444;cursor:pointer;margin:0 2px}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list">
<li data-filePage="1" style="display:block">1</li>
<li data-filePage="1" style="display:block">2</li>
<li data-filePage="2">3</li>
<li data-filePage="2">4</li>
<li data-filePage="3">5</li>
<li data-filePage="3">6</li>
<li data-filePage="4">7</li>
</ul>
<ul class="pagination">
<li data-page="1">1</li>
<li data-page="2">2</li>
<li data-page="3">3</li>
<li data-page="4">4</li>
</ul>
&#13;
您可以使用简单的ajax pagination,只需要更改php代码。