PHP在一行上输出所有表

PHP在一行上输出所有表,php,html,css,html-table,word-wrap,Php,Html,Css,Html Table,Word Wrap,脚本应该将所有图片都放在一个文件夹中,并将前六张图片输出到一个表中。然后我想添加一个小的“下一步”按钮,这样就可以查看其余的图像,但目前脚本只是将它们全部显示在一行上。所有的,不仅仅是我想要的六个。除此之外,代码也出现在网页的底部,在文档的后面有很多代码 PHP <?php $i = 0; $directory = 'images/gallery/'; $files1 = scandir($directory); $x = 0; $y = 0; $z = 0; echo"<tab

脚本应该将所有图片都放在一个文件夹中,并将前六张图片输出到一个表中。然后我想添加一个小的“下一步”按钮,这样就可以查看其余的图像,但目前脚本只是将它们全部显示在一行上。所有的,不仅仅是我想要的六个。除此之外,代码也出现在网页的底部,在文档的后面有很多代码

PHP

<?php

$i = 0;
$directory = 'images/gallery/';
$files1 = scandir($directory);
$x = 0;
$y = 0;
$z = 0; 
echo"<table><tr>";
foreach ($files1 as $filename) {
   if ($z == $x + 6) {
    break 2;
    }
    if ($x==1 || $x==0)
    {
        $x=$x+1;
    }
     else {
        if ($y == $x + 3) {
            echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td></tr><tr>";
            $y = $x;
            $x=$x+1;
        } else {
            echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td>";
            $x = $x+1;
        }
    }
}
?>

您没有关闭PHP中的
标记。这意味着
将进入表中。大多数浏览器不同意这种无效的HTML,将非表元素放在表的前面,这就是为什么表会下沉到底部

关闭PHP中的
,它应该可以正常工作

为什么不试试这个呢

<?php

$directory = 'images/gallery/';
$files1 = scandir($directory);
$x = 1;
echo"<table><tr>";
foreach ($files1 as $filename) {
   if ($x <= 6) {
       if ($x % 3==0) {
           echo "</tr><tr>";
       }
       echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td>";
       $y = $x;
       $x=$x+1;
   } else {
       break;
   }
}
echo"</tr></table>";
?>

将行设为3行,跳过目录的解决方案:

$count = 0;
echo "<table><tr>";
foreach ($files1 as $filename)
{
  if (is_file($filename))
  {
    if ($count && ($count % 3 === 0))
    {
      echo "</tr><tr>";
    }

    echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td></tr><tr>";

    $count++
    if ($count >= 6)
    {
      break;
    }
  }
}
echo "</tr></table>";
$count=0;
回声“;
foreach($files1作为$filename)
{
如果(是_文件($filename))
{
如果($count&&($count%3==0))
{
回声“;
}
回声“;
美元计数++
如果($count>=6)
{
打破
}
}
}
回声“;

输出的html是什么样子的?
$z=0
$x
只是在增加,所以您永远不会在
$z==x+6
处达到
中断
。似乎是一个非常复杂的循环,只回显2行3行。只需使用一个不断增加的计数器并检查模数运算符。如果x>6,也可以添加一个中断。是的,这就是问题所在,我必须跳过前两个元素,因为scandir会将前两个条目作为。。然后我有两张破照片
<?php

$directory = 'images/gallery/';
$files1 = scandir($directory);
$x = 1;
echo"<table><tr>";
foreach ($files1 as $filename) {
   if ($x <= 6) {
       if ($x % 3==0) {
           echo "</tr><tr>";
       }
       echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td>";
       $y = $x;
       $x=$x+1;
   } else {
       break;
   }
}
echo"</tr></table>";
?>
$count = 0;
echo "<table><tr>";
foreach ($files1 as $filename)
{
  if (is_file($filename))
  {
    if ($count && ($count % 3 === 0))
    {
      echo "</tr><tr>";
    }

    echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td></tr><tr>";

    $count++
    if ($count >= 6)
    {
      break;
    }
  }
}
echo "</tr></table>";