0

このコードはファイル名をソートし、拡張子をローカルで完全にソートしますが、PHP のバージョンに関係なく、ホスティング会社の (共有) サーバーでこれを動作させることはできません。ホストのサーバーでソートを実行しません。多くの異なるホスティング会社のサーバーでこれを試しました。したがって、これは 1 つのホスティング会社/サーバーの問題ではありません。(*FYI: テストされた PHP の最も古いバージョンは 5.2.17 でした - 最も最近テストされたのは 5.3.26 でした。ローカル = 5.3.5)

出力例:
a_first.jpg
a_first.png
a_first.zip
b_second.doc
b_second.gif
b_second.jpg

<?php

function getFileExt($filename) {
    return substr(strrchr($filename,'.'),1);
}

$handle=opendir(dirname(__FILE__));

while (($file = readdir($handle))!==false) {
    $fileExt = strtolower(getFileExt($file));
    if(in_array($file, $ignore_file_list)) { continue; }
    if(in_array($fileExt, $ignore_ext_list)) { continue; }
    if(is_dir($file)) { $fileExt = "dir"; }

    /* SORT FILES - First by filename and then by extension */
    $files = glob($handle."/*.*");
    $files = array_map("basename", $files);

    natcasesort($files);

    echo '
<div><a href='.$file.' class='.$fileExt.'>&nbsp;</a></div>
<div><a href='.$file.'>$file</a></div>
';
}

closedir($handle);

?>

詳細については、この投稿を参照してください:
PHP - 元の並べ替え後にデータを並べ替える

4

0 に答える 0