使用glob自动创建上一个和下一个类型页


Automatically creating next and previous type pages using glob

试图使glob函数只显示前10个结果(来自文件夹的文本文件),然后自动显示带有next按钮的后10个结果

目前,我使用array_slice只显示前10个,但我不确定如何自动化这个过程。

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

哦,当我在它,如果可能的话,显示类似"显示1-10"和最后/第一个链接。我可能会在克服第一个障碍后自己解决这个问题,所以不要麻烦这个,除非它是一个超级简单的解决方案。

您尝试完成的称为分页。从您的示例中,您可以通过设置一个变量来决定从哪个数字(文件)开始,从而动态地选择要查看的十个。

的例子:

<?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整除,类似于从$_GET数组中检索$start:

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

现在,对于链接,您所需要做的就是输出具有正确设置的开始参数的<a>标记。您必须执行一些逻辑来正确地计算下一个和上一个值,但这里有一个简单的示例:

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

Edit:正如上面的注释所建议的,您可能不希望include()这些文件,因为include()将尝试将这些文件解释为PHP脚本。如果只需要获取文本文件的内容,则使用file_get_contents。