[求助] 这段代码要如何改才能按指定的方式来显示?
写了一段显示当前目录下图片的代码,但是我想把图片按照每行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>&nbsp;";
$filenum++; //计算显示文件数
}
}
}
closedir($dh);
}
}
?>
用双循环,把图像画在一个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 一个"&nbsp;"
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]