所以我有这个页面列出了网站上的'.txt'文件内容。我试图对它进行分页,但它不起作用。我想每页只有一个故事(一个故事是数据[0]。数据[1]) 该页面通过ajax调用到浏览器。 这是我的代码:
<?php
$dataArray = array();
//Number of chars for the string
$num = 500;
$dir = '../php/biralas_tortenetek/';
$willcount = readdir(opendir($dir));
$totfiles = count(readdir(opendir($dir)));
//Check if </div>DIR e</div>xists
if ($handle = opendir($dir)) {
//Loop over the directory
while (false !== ($file = readdir($handle))) {
//Strip out the . and .. files
if ($file != "." && $entry != "..") {
//Store file contents
$filecontent = file_get_contents($dir . $file);
//Split the content and store in array
$length = strlen($filecontent);
$dataArray[] = array(substr($filecontent, 0, $num), substr($filecontent, $num, $length ));
}
}
//close the dir
closedir($handle);
}
?><?php
$page = isset($_GET['page']) ? $_GET['page']-1 : 0;
echo "<br/>";
for($x=$page*1; $x < $totfiles && $x < ($page+1)*12; $x++)
{
foreach($dataArray as $data) { ?>
<div class="visible">
<?php echo $data[0] . $data[1]; ?>
</div><?php } ?>
</div>
<?php }
for($page=1; ($page-1)*12 < $totfiles; $page++)
{
echo "<div class='lapozo'><a onclick='story_changepage($page);' href='../html/blog.php#tortenetek?page=$page'>$page</a></div>";
}
?>
同样,目标是每页只有一个故事。 谢谢!
答案 0 :(得分:2)
第一个解决方案:
$willcount = readdir(opendir($dir));
$i = 0;
//Check if </div>DIR e</div>xists
if ($handle = opendir($dir)) {
//Loop over the directory
while (false !== ($file = readdir($handle))) {
//Strip out the . and .. files
if ($file != "." && $entry != "..") {
//Store file contents
$filecontent = file_get_contents($dir . $file);
//Split the content and store in array
$length = strlen($filecontent);
// store file as indexed item of array
$dataArray[$i++] = array(substr($filecontent, 0, $num), substr($filecontent, $num, $length ));
}
}
//close the dir
closedir($handle);
}
// store total files in dir
$totfiles = $i;
$page = isset($_GET['page']) ? $_GET['page']-1 : 0;
echo "<br/>";
for($x=$page*12; $x < $totfiles && $x < ($page+1)*12; $x++) {
$data = $dataArray[$x];
?>
<div class="visible">
<?php echo $data[0] . $data[1]; ?>
</div>
<?php
}
CUT 2nd Solution:// preferred它比第一个解决方案使用更少的内存
$willcount = readdir(opendir($dir));
$i = 0;
// get page
$page = isset($_GET['page']) ? $_GET['page']-1 : 0;
//Check if </div>DIR e</div>xists
if ($handle = opendir($dir)) {
//Loop over the directory
while (false !== ($file = readdir($handle))) {
//Strip out the . and .. files
if ($file != "." && $entry != "..") {
$i ++;
// if our page not first, skip add
if ($i <= $page * 12) continue;
// if we reach end of the page, break
if ($i > ($page + 1)* 12) break;
//Store file contents
$filecontent = file_get_contents($dir . $file);
//Split the content and store in array
$length = strlen($filecontent);
$dataArray[] = array(substr($filecontent, 0, $num), substr($filecontent, $num, $length ));
}
}
//close the dir
closedir($handle);
}
// store total files in dir
$totfiles = $i;
echo "<br/>";
foreach($dataArray as $data) {
?>
<div class="visible">
<?php echo $data[0] . $data[1]; ?>
</div>
<?php
}