2011-10-12 64 views
0

試圖使glob函數僅顯示前10個結果(文件夾中的文本文件),然後自動使用下一個按鈕顯示下一個10。使用glob自動創建下一個和前一個類型的頁面

目前,我用array_slice只顯示前10個,但我不知道如何自動執行該過程。

foreach(array_slice(glob("*.txt"),0,9) as $filename) { 
    include($filename); } 

哦,而我在這,如果可能的話,顯示類似「顯示1-10」和最後一個/第一個環節。我可能會在經過第一個障礙後自己想出來,所以除非這是一個超級簡單的解決方案,否則不要打擾。

+2

請從一個基本的PHP教程開始。瞭解GET參數。哦,當你在這裏時,如果可能的話,明白包括()在內。 – Jan

+0

@Jan同意了。你可能會使用'file_get_contents()'。 –

+0

好的,會做的。 – FrozenTime

回答

0

你試圖完成什麼叫做分頁。在你的例子中,你可以通過設置一個變量來動態地選擇你正在查看的十個數據,這個變量決定了開始的數字(文件)。

例子:

<?php 
$start = isset($_GET['start']) ? intval($_GET['start']) : 0; 

$glob_result = glob("*.txt"); 
$num_results = count($glob_result); 

// Check to make sure the $start value makes sense 
if($start > $num_results) 
{ 
    $start = 0; 
} 

foreach(array_slice($glob_result, $start, 9) as $filename) 
{ 
    include($filename); // Warning! 
} 

如果你只希望做增量爲10,你可以添加一個檢查,以確保$start是被10整除,像這樣$start後從$_GET數組中檢索:

$start = ($start % 10 == 0) ? $start : 0; 

現在,對於鏈接,您所需要做的就是輸出<a>具有正確啓動參數設置的標籤。你將不得不做一些邏輯來正確地計算下一個和前值,但這裏是一個簡單的例子:

$new_start = $start + 10; 
echo '<a href="page.php?start=' . $new_start . '">Next</a>'; 

編輯:如上的評論暗示,你可能不希望include()這些文件,因爲include()將嘗試將這些文件解釋爲PHP腳本。如果您只需要獲取文本文件的內容,請改爲使用file_get_contents

相關問題