2013-10-25 128 views
0

我有這樣的腳本:執行opendir()支持分頁

<?php 
if ($handle = opendir('konten')) { 
    $blacklist = array('.', '..', 'somedir', 'index.php', 'style.css'); 
    while (false !== ($file = readdir($handle))) : 
     if (!in_array($file, $blacklist)) : 

?> 
<div style="display:block;clear:both;"> 
<span style="font-size:18px;">&raquo;</span> <a href=""><?php echo $file;?></a> 
</div> 
<?php 
endif; 
endwhile; 
closedir($handle); 
} 
?> 

輸出看起來是這樣的:

» linux (5th copy) 
» linux 
» linux (10th copy) 
» linux (9th copy) 
» linux (4th copy) 
» linux (6th copy) 
» linux (8th copy) 
» linux (copy) 
» linux (7th copy) 
» linux (another copy) 
» linux (3rd copy) 

如何分頁補充呢?
例如: 我想在一個頁面上只顯示3個dirs。

回答

1

其實你需要設置限制和頁面類似如下:

但在這種情況下,你會得到幾乎目錄中的所有文件。

<?php 
$limit = 4; //Or just for dynamic limit - (int)$_GET['limit']; 
$page = (int)$_GET['page']?:0; // _GET['page'] or 0 for default 
$skip = $limit * $page; 
if ($handle = opendir('konten')) { 
    $blacklist = array('.', '..', 'somedir', 'index.php', 'style.css'); 
    $skiped = 0; 
    while (false !== ($file = readdir($handle))) { 
     if (!in_array($file, $blacklist)) { 
     $skipped++; 
     if ($skipped < $skip || $skipped >= $skip + $limit) { 
      continue; 
     } 
     ?> 
      <div style="display:block;clear:both;"> 
       <span style="font-size:18px;">&raquo;</span> <a href=""><?php echo $file;?></a> 
      </div>   
     <?php } 
    } 
} 
// For pagination support 
$pages = (int)$skipped/$limit; 
if ($skipped % $limit) 
    $pages ++; 

for ($i = 1; $i <= $pages; $i++) { 
    $class = ''; 
    if ($page == $i) $class = 'class="active"'; 
    ?> <a href="?page=<?= $i ?>" <?= $class ?>><?= $i ?></a> <?php 
} 
?> 

UPD:添加分頁支持

+0

這就是工作,如果我例如設置網址到極限= 4&頁= 1?。但如何顯示分頁鏈接? sory im noob in php like this – Anggagewor

+0

@AnggaMovic的帖子已更新。但是你需要在代碼末尾更改cicle的URL。只有一個只有查詢的臨時網址。也有更新開始 - 沒有更多的動態限制支持:) – Spell