Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在目录中创建文件分页?_Php_Jquery_Html_Css_Pagination - Fatal编程技术网

Php 如何在目录中创建文件分页?

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());

我使用以下代码列出了一个目录中的所有特定文件(*.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>";

    }
}
?>

我认为没有理由不使用而不是
文件系统发射器()
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
    }