0

我有一个带有缩略图和链接的相册样式页面设置。问题是由于某种排序问题,缩略图与文件夹及其连接的链接不匹配。该页面可以在http://www.remixnightclub.net/album.php以及代码中查看。关于我可以尝试使其正常工作的任何想法?如果这不是太明显的话,我对 php 比较陌生。

//if no album selected
if (!$get_album)
{
    echo "<b>Select an album:</b><p />";

    //find each album and display as links
    $y = 0;
    $handle = opendir($base); 

    while (false !== ($file = readdir($handle)))
    {
        if (is_dir($base."/".$file) && $file !="." && $file !=".." && $file != $thumbs)
        {
            echo "<table style='display:inline;' class='nav'><tr><td align='center'><a href='$page?album=$file'><img src='$base/$thumbs/$images[$i]'></a><br /><li><a href='$page?album=$file'>".$file."</a></li></td></tr></table>";
            $i++;

            if ($y==$column1)
                echo "<br />";

            $y = 0;
        }
    }
    closedir($handle);
}

我没有使用数据库。

4

2 回答 2

0

readdir函数以基本上随机的顺序返回目录条目;程序喜欢ls在显示它们之前麻烦地对它们进行排序,但是它们在文件系统中并没有自然排序。将它们读入一个数组并在迭代之前对其进行排序。

例子:

    $files = array();
    while (false !== ($file = readdir($handle)))
    {
        if (is_dir($base."/".$file) && $file !="." && $file !=".." && $file != $thumbs)
        {
            array_push($files, $file);
        }
    }
    closedir($handle);

    rsort($files);

    foreach ($files as $file) 

等等

于 2013-02-18T20:39:45.570 回答
0

另一种解决方案是使用glob. glob将为您排序文件:

$files = glob($base);
foreach ($files as $file)
{
  // etc.

你甚至可以指定一个模式来只获取你想要的文件,不包括拇指。

编辑:如果要降序,则需要反转结果:

$files = glob($base);
$inverse_files = array_reverse($files);
于 2013-02-18T20:48:47.010 回答