以下、長文失礼します。。。
これを行う方法について数日間検索しましたが、これを行う方法に頭を悩ませているようには見えません。1 年の各月 (1 月、2 月など...) に 1 つずつ、合計 12 のフォルダーを含むディレクトリがあります。
各フォルダー内には、一定数の画像ファイル、デスクトップの背景があります。各ファイルには、所属する月、その月の年、カレンダーの有無、および解像度サイズに従って名前が付けられます。たとえば、Jan フォルダーには次の命名規則のファイルがあります。January2012_nocal_2560x1440; 等...
5 月などの現在の月には、May2013_calendar_2560x1440; という名前のファイルもあります。May2013_calendar_1920x1200; 等...
私がやりたいのは、現在の月から始まり、時間をさかのぼって、各月が年に続く順序でフォルダーのリストを作成することです。各月の下に、そのフォルダー内の正しい年のファイルを一覧表示したいと思います。
これが私が出力したいものです。今月の場合:
<a class="menuitem" href="">May 2013</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="May/May2013_nocal_2560x1440.jpg">2560 x 1440</a></li>
<li><a href="May/May2013_nocal_1920x1200.jpg">1920 x 1200</a></li>
etc...
</ul>
<ul class="list2" style="float:right">With Calendar:
<li><a href="May/May2013_calendar_2560x1440.jpg">2560 x 1440</a></li>
<li><a href="May/May2013_calendar_1920x1200.jpg">1920 x 1200</a></li>
etc...
</ul>
翌月ごと:
<a class="menuitem" href="">April 2013</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="April/April2013_nocal_2560x1440.jpg">2560 x 1440</a></li>
etc...
</ul>
<a class="menuitem" href="">March 2013</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="March/March2013_nocal_2560x1440.jpg">2560 x 1440</a></li>
etc...
</ul>
<a class="menuitem" href="">February 2013</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="February/February2013_nocal_2560x1440.jpg">2560 x 1440</a></li>
etc...
</ul>
<a class="menuitem" href="">January 2013</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="January/January2013_nocal_2560x1440.jpg">2560 x 1440</a></li>
etc...
</ul>
<a class="menuitem" href="">December 2012</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="December/December2012_nocal_2560x1440.jpg">2560 x 1440</a></li>
etc...
</ul>
<a class="menuitem" href="">November 2012</a>
<ul class="list2" style="float:left">Without Calendar:
<li><a href="November/November2012_nocal_2560x1440.jpg">2560 x 1440</a></li>
etc...
</ul>
etc...
カレンダー順に各フォルダーをループし、2013 年のフォルダー内の各ファイルをエコーアウトしてから、2012 年のすべてのフォルダーを再びループします。
scandir
、blob
、およびその他のリソースを調査して、explode
各フォルダーとファイルを読み取り/一覧表示しましたが、すべてを希望どおりに並べ替える方法がわかりません。
これを行う方法についてのアドバイスは大歓迎です。
編集:私は過去数日間無駄に検索してきました. これまでに受け取ったすべての反応に感謝していますが、どれも私がやりたいことを実際に行っているようには見えません. これまでの基本コードは、並べ替えてループしたいすべてのフォルダー/ファイルを取得します。
$root = $_SERVER['DOCUMENT_ROOT']."/wallpapers/";
$folders = scandir($root);
foreach ($folders as $folder) {
if(is_dir($root . "/" . $folder) && $folder != "." && $folder != ".." && $folder != "images") {
$months = array($folder);
foreach ($months as &$month) {
$files = scandir($root . $month);
foreach ($files as $file) {
if(is_file($root . $month . "/" . $file)) {
echo $month . "/" . $file . "<br />";
}
}
}
}
}
ここからどこへ行けばいいのかわかりません。