四个最新的图像2x2与PHP

时间:2012-11-26 15:58:16

标签: php html

我正在尝试重用我在这里找到的一些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,但这是基本代码。

3 个答案:

答案 0 :(得分: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的SO帖子 glob() - sort by date

答案 1 :(得分:0)

添加一些css;

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

将是一个良好的开端。

答案 2 :(得分: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/>";
   }
}

请注意,在代码文件的末尾不要使用?>可以防止意外包含可能会导致格式化的空格字符。