试图使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。