0

此 php 代码显示了我网站上目录的内容:

<?php
 $dir = opendir(getcwd());
 ?>
<body>
<table>
    <tbody>
        <tr>
<?php
  while (($file = readdir($dir)) !== false) {
      {
            echo "<td>". $file ."</td>";
    }       
  }
  closedir($dir);
?>
        </tr>
    </tbody>
</table>
</body>

它将结果放在一个table. 问题是 PHP 代码会生成一个<td>标签并将结果存储在其中。因此,finaltable有一个标签,标签数量与结果<tr>一样多<td>

我想要的是table每行(tr 标签)有 3 列(3 td)。

有没有办法使表格动态化,并且每三个<td>标签变成一个<tr>标签,所以结果如下所示:(单击此处)

而不是看起来像这样:(点击这里)

4

2 回答 2

4

试试这个:

<?php
 $dir = opendir(getcwd());
 ?>
<body>
<table>
    <tbody>

<?php
  $n = 0;
  while (($file = readdir($dir)) !== false) {
      {
           if($n%3 == 0){echo "<tr>";}
           echo "<td>". $file ."</td>";
           $n++;
    }       
  }
  closedir($dir);
?>

</tbody>

于 2012-10-09T11:32:04.400 回答
1

您可以使用模数来跟踪您在循环中的位置。然后,当您乘以 3 时,重新启动表格行:

<?php
   $dir = opendir(getcwd());
?>
<body>

    <table>
        <tbody>
            <tr>
            <?php
                $counter = 0;
                while (($file = readdir($dir)) !== false) {
                    {
                        if($counter % 3 == 0 && $counter != 0) echo "</tr><tr>";
                        echo "<td>". $file ."</td>";
                        $counter++;
                    }       
                }
                closedir($dir);
            ?>
            </tr>
       </tbody>
    </table>

</body>
于 2012-10-09T11:46:44.093 回答