2

我正在尝试重用我在此处找到的一些 PHP,但我对 PHP 没有太多经验并陷入困境。

从相机上传图像时,我希望能够在不滚动的情况下尽可能大地显示 4 张最新图像。2宽2高:将全屏分辨率分为4个象限。最初的 PHP 将它们打印在一个列中(通过在循环中的每个图像后添加一个中断),我现在也让它们水平打印。但是,它们太小而无法从远处合理地观察。我不知道如何打印两个,创建一个换行符,然后打印最后两个。或者,如果有一种方法可以使用表格并在每个表格中都有一个图像td

这是我现在的位置:

<?php

$images = glob('images/*.{jpg,jpeg}', GLOB_BRACE); //formats to look for

$num_of_files = 4; //number of images to display

foreach($images as $image)
{
     $num_of_files--;

     if($num_of_files > -1) 
       echo "<img src="."'".$image."'".">"; 
     else
       break;
}
?>

我正在使用一些 CSS 来添加 z-index,但这是基本代码。

4

3 回答 3

1

打印 2 然后换行然后 2 你可以使用

  foreach($images as $image) {
     $num_of_files--;

     if($num_of_files > -1){
       echo '<img src="' . $image . '" id="png' . $num_of_files . '" width="50%">';
       if($num_of_files % 2 == 0)
         echo "<br />";
     }
     else
       break; 
  }

并查看有关对 glob glob() 进行排序的 SO 帖子 - 按日期排序

于 2012-11-26T16:18:34.533 回答
0

添加一些CSS;

img {
    border: 0px;
    margin: 0px;
    display: inline;
    width: 50%;
}

会是一个好的开始。

于 2012-11-26T16:00:32.493 回答
0

我试图清理您的代码并使其更通用:

<?php

$images = glob('images/*.{jpg,jpeg}', GLOB_BRACE); //formats to look for
$images_printed = 0;
$images_per_row = 2;

foreach($images as $image) {
   echo "<img src="."'".$image."'".">";
   $images_printed++;
   if ($images_printed % $images_per_row == 0) {
      echo "<br/>";
   }
}

请注意,?>在代码文件的末尾省略将防止意外包含可能会导致格式化的空白字符。

于 2012-11-26T16:25:01.600 回答