【问题标题】:Display contents of static files across multiple pages in PHP在 PHP 中跨多个页面显示静态文件的内容
【发布时间】:2012-01-12 05:45:47
【问题描述】:

我正在制作一个非常简单的 PHP 博客,它从目录中获取 txt 文件,并在 PHP 页面上一个接一个地显示它们。这很好,但我计划拥有 365 个这样的文件,所以最好在多个页面上显示它们,Wordpress 样式。 PHP 将如何动态生成这些页面,例如,每页显示 20 个文件?

我要显示文件的PHP如下:

function printFile($file) {
  $handle = fopen("$file", "r");
  while (!feof($handle)) {
    echo fgets($handle) . "<br>";
  }
  echo "<hr>";
  fclose($handle);
}



$files = scandir($directory); 
$number = count($files, 0);
while ($number > 2) {
  $number--; 
  $FileToPrint = $directory . $files["$number"];
  echo $FileToPrint . "<br>";
  printFile("$FileToPrint");
}   

【问题讨论】:

  • 您可以通过简单地调用readfile($file) 来替换您的printFile($file) 函数。

标签: php wordpress static blogs


【解决方案1】:

这应该会给你一个想法:

// initialize some settings
$perPage = 20;
$page = intval($_GET['page']);

// getting the files (just *.txt)
$files = glob('directory/*.txt');
$numFiles = count($files);

// displaying the files for this page
$offset = $page * $perPage;
for($i = $offset; $i < ($offset + $perPage); $i++){
    // just print the filename for now
     echo $files[$i]. "<br>";
}


// page browser
$numPages = ceil($numFiles / $perPage);
for($i = 0; $i < $numPages; $i++){
    echo '<a href="yourpage.php?page='.$i.'">'.$i.'</a>';
}

【讨论】:

  • 那里存在潜在的未定义索引错误。循环会更好for ($i = $offset, $count = min($offset + $perPage, $numFiles); $i &lt; $count; $i++)
  • 另外,偏移量计算应该是($page - 1) * $perPage
  • 以相反的顺序显示文件的代码是什么?我只是在学习 for 循环,到目前为止还没有想出任何东西。
  • glob() 之后运行rsort($files) 以倒序排列它们
猜你喜欢
  • 2010-10-10
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2014-05-13
  • 1970-01-01
相关资源
最近更新 更多