monsters 发表于 2003-10-28 12:50:31

[求助] 这段代码要如何改才能按指定的方式来显示?

写了一段显示当前目录下图片的代码,但是我想把图片按照每行4张来显示,并且每页显示5行,其它的自动分页,请问应该怎么改? 谢谢谢谢!


<?php
$dir = getcwd();
$filenum=0;
$a_img = array();

echo "<title>图片显示</title>";
myreaddir();
echo "<br>实际共有图片".$totimg."张 - 共显示图片".$filenum."张";
                           
function myreaddir(){
       
        global $dir,$filenum,$col,$maxrow,$totimg;
       
        //如果目录可以打开
        if ($dh = opendir($dir)) {
               
                //当读取目录成功时
          while (($file = readdir($dh)) !== false) {
                 
                  //除去 "." 和 ".."
                  if ($file != "." && $file != "..")
                  {
                          $type = substr($file,-3); //取得文件后缀
                          $name = substr($file,0,-4); //取得文件名
                         
                          if( $type=="gif" || $type=="jpg" || $type=="png" || $type=="GIF" || $type=="JPG" || $type=="PNG") //校对后缀名
                          {
                                  //统计图片文件数
                                        $a_img[count($a_img)] = $file;
                                        sort($a_img);
                                        reset ($a_img);
                                        $totimg = count($a_img);
                                        $x=0;
                                       
                                  $size = getimagesize ("$file"); //取得图片尺寸
                                  $halfw = round($size[0]); //取得宽度
                                  $halfh = round($size[1]); //取得高度
                                                                   
                                  echo "<a href='$file'><img src='$file' width='$halfw' height='$halfh' border='0' alt='$file 尺寸:$halfw X $halfh'></a> ";       
                                  $filenum++; //计算显示文件数
                          }
                  }
          }
        closedir($dh);
        }
}
?>

jiangtao9999 发表于 2003-10-28 15:12:44


用双循环,把图像画在一个4*5表格里。(只是一个例子,估计有问题)

echo"<table width='75%' border='0' cellpadding='0' cellspacing='0'>";

for($i=0;$i<5;$i++)
{
         echo"<tr>";

         for($j=0;$j<4;$j++)
         {
                   echo"<td>";
                   echo 你的图像(如文件名 $pic[$k],如果文件名为空,echo 一个" "
                   echo"</td>";
                   $k++;
          }

         echo"</tr>";
}
echo"</table>";

至于分页,你可以读取目录后,把需要用到的20个文件名传给这个循环(如用上例 $pic[$k] 那个数组。用URL传递页码。)
用一个数组,只把本页码需要的20个文件名传给那个双循环。如:

$pic_list[] 是所有的文件名,$page 为页码。
for($i=0;$i<20;$i++)
{
               $pic[$i]=$pic_list[$i + $page*20];
}

$pic[] 里只包含本页需要的20个图像文件名。

有短时间没写代码了,可能会有错误
页: [1]
查看完整版本: [求助] 这段代码要如何改才能按指定的方式来显示?