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

別の解決策は、を使用してディレクトリ全体を読み取ることglobです。globあなたのためにあなたのファイルをソートします:

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

パターンを指定して、親指を除いて必要なファイルのみを取得することもできます。

編集:降順が必要な場合は、結果を逆にする必要があります。

$files = glob($base);
$inverse_files = array_reverse($files);
于 2013-02-18T20:48:47.010 に答える
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 に答える