[英]PHP Order folders & files in directory in custom order
很抱歉以后的冗长帖子...
我已经搜索了几天以了解如何执行此操作,但似乎无法全神贯注于如何完成此操作。 我有一个包含十二个文件夹的目录,一年中的每个月一个文件夹(一月,二月等)。
在每个文件夹中,我都有一定数量的图像文件,即桌面背景。 每个文件都根据其所属的月份,该月份所在的年份,是否具有日历以及其分辨率大小来命名。 例如,Jan文件夹将包含具有以下命名约定的文件:January2013_nocal_2560x1440; 一月2012_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 />";
}
}
}
}
}
我只是不确定从这里去哪里。
您可以只在所需目录中列出文件,然后可以使用usort
这可能是一个可以帮助您入门的示例: http : //www.weberdev.com/get_example.php3 ?ExampleID= 4959您可能必须获取数据,然后对其进行排序以进行显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.