尝试使它能使glob函数仅显示前10个结果(文件夹中的文本文件),然后使用下一个按钮自动显示下10个结果。
目前,我使用array_slice只显示前10个,但我不确定如何自动化该过程。
foreach(array_slice(glob("*.txt"),0,9) as $filename) {
include($filename); }
哦,当我在它的时候,如果可能的话,显示类似“显示1-10”和最后/第一个链接的内容。在我遇到第一个障碍后,我可能会想到这一点,所以除非这是一个非常简单的解决方案,否则不要为此烦恼。
答案 0 :(得分: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;
现在,对于链接,您需要做的就是输出正确设置了start参数的<a>
标记。你必须做一些逻辑来正确计算下一个和前一个值,但这是一个简单的例子:
$new_start = $start + 10;
echo '<a href="page.php?start=' . $new_start . '">Next</a>';
编辑:正如上面的评论所示,您可能不希望include()
这些文件,因为include()
会尝试将这些文件解释为PHP脚本。如果您只需要获取文本文件的内容,请改用file_get_contents。