0

php.net opendir()で確認しましたが、opendir() が取得するファイルの順序を制御する方法が見つかりませんでした。

スライドショーを持っていますが、画像の順序を制御するのに問題があります。名前を変更して01.img, 02.img,...を使用しようとし20.imgましたが、成功しませんでした。

私のスクリプト:

<?php
$path2 = "./img/";
function createDir($path2 = './img'){   
    if ($handle = opendir($path2)){
        echo "<ul class=\"ad-thumb-list\">";
        while (false !== ($file = readdir($handle))){
            if (is_dir($path2.$file) && $file != '.' && $file !='..')
                printSubDir($file, $path2, $queue);
            else if ($file != '.' && $file !='..')
                $queue[] = $file;
        }
        printQueue($queue, $path2);
        echo "</ul>";
    }
}

function printQueue($queue, $path2){
    foreach ($queue as $file){
        printFile($file, $path2);
    } 
}

function printFile($file, $path2){
    if ($file=="thumbs.db") {echo "";}
    else{
        echo "<li><a href=\"".$path2.$file."\">";
        echo "<img src=\"".$path2.$file."\" class='thumbnail'></a></li>";
    }
}

/*function printSubDir($dir, $path2)
{
}*/

createDir($path2);
?>
4

3 に答える 3

1

PHP 5 を使用している場合は、代わりに scandir() を使用してみてください。ソートの引数があります。

http://us1.php.net/scandir

array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )
于 2013-10-09T14:40:42.703 に答える
0

@Stevenがすでに言ったように、の出力を変更できない場合がありますがopendir()、後で配列をソートすることを妨げるものは何もありません。

これを行うには、natsort()ファイル名に使用しているような文字列を適切に並べ替えるように設計された関数を見てください。

于 2013-10-09T14:41:09.170 に答える