リスト内の各ディレクトリ内のディレクトリとファイルを表示する PHP メニューを作成しようとしています。これらのディレクトリ内の各ファイルへのリンクがあります (ただし、ディレクトリ自体へのリンクはありません)。ディレクトリは「2013」、「2014」などの数値で、これらのディレクトリ内のファイルは PDF です。
本質的に:
--- 2013 (リンクなし)
--------------- 01.pdf(リンク)
--------------- 02.pdf(リンク)
--------------- 03.pdf(リンク)
--- 2014 (リンクなし)
--------------- 04.pdf(リンク)
--------------- 05.pdf(リンク)
--------------- 06.pdf(リンク)
現在、私のコードは次のようになっています。
<?php
function read_dir_content($parent_dir, $depth = 0){
if ($handle = opendir($parent_dir))
{
while (false !== ($file = readdir($handle)))
{
if(in_array($file, array('.', '..'))) continue;
if( is_dir($parent_dir . "/" . $file) ){
$str_result .= "<li>" . read_dir_content($parent_dir . "/" . $file, $depth++) . "</li>";
}
$str_result .= "<li><a href='prs/{$file}'>{$file}</a></li>";
}
closedir($handle);
}
$str_result .= "</ul>";
return $str_result;
}
echo "<ul>".read_dir_content("prs/")."</ul>";
?>
ただし、これは処理時に完全な混乱を引き起こします。(残念ながら、私は新しいユーザーなので画像を投稿できませんが、タブーではない場合は、それへの卑劣なリンクを提供します:http://i.stack.imgur.com/gmIFz.png)
私の質問/ヘルプのリクエスト:
1.英数字の順序が逆になっているのはなぜですか。つまり、2013 年がリストの一番下にあり、2014 年が一番上にあるのはなぜですか?
2. PDF へのリンクを保持したまま、ディレクトリへのリンクを削除するにはどうすればよいですか?
3.各ディレクトリのリストの最後に空のリスト項目がある理由と、それらが論理的/一貫して間隔をあけられていない理由、つまり、01、02、03 の PDF が 2013 に従属していない理由 (「本質的には' 上の間隔)?
注: 私はプログラミングと PHP を初めて使用するので、明らかな間違いが非常に単純である可能性があることを覚えておいてください。そうである場合は、事前に申し訳ありません。
編集:ファイル名の末尾にある「.pdf」を取り除くことも大きなボーナスになりますが、それはおそらくまったく別の質問/問題です。