1

ディレクトリの内容を Web ページに出力するコードがいくつかありますが、アルファベット順に出力する方法が私を逃れているようです。

<?php

 $dir="../zpress/pages"; // Directory where files are stored

 if ($dir_list = opendir($dir))
 {
 while(($filename = readdir($dir_list)) !== false)
 if(!is_dir($filename))
 {
  ?>
  <p><a href="../zpress/pages/<?php echo $filename; ?>"><?php echo $filename;
  ?></a></p>
  <?php
  }
  closedir($dir_list);
  }

  ?>

どんな提案でも大歓迎です。

4

3 に答える 3

1
$the_files = array();
while(($filename = readdir($dir_list)) !== false) {
    if(!is_dir($filename)) {
        array_push($the_files,$filename);
    }
}
sort($the_files);
foreach($the_files as $the_file) { ?>
   <p><a href="../zpress/pages/<?php echo $the_file; ?>"><?php echo $the_file;?></a></p>
<?php } ?> 
于 2012-04-10T01:48:32.927 に答える
1

scandirアルファベット順にソートされたディレクトリ内のすべてのファイルを返すを使用できます

$files = scandir($dir);

foreach($files as $file) {
   // your code here
}

scandir

于 2012-04-10T01:50:04.623 に答える
0

ディレクトリリスト全体をメモリに丸呑みしてstrnatcasecmpから、リストの並べ替えに適用できます。

$dir = ".";
$files = glob("$dir/*");
usort($files, 'strnatcasecmp');
// $files is now sorted

を使用strnatcasecmpすると、自然な場合の並べ替えで順序がわかり、人間が読める形式の出力になります。説明についてはこちらをご覧ください:http ://sourcefrog.n​​et/projects/natsort/

于 2012-04-10T01:49:38.333 に答える