PHP订单文件夹&自定义顺序的目录中的文件

时间:2013-05-02 17:47:23

标签: php

对于随后的冗长帖子抱歉...

我已经搜索了几天如何做到这一点,我似乎无法解决如何完成这项工作。 我有一个目录,里面有12个文件夹,一个月中的每个月(1月,2月等等)

在每个文件夹中,我有一定数量的图像文件,桌面背景。每个文件都根据它所属的月份,月份的年份,是否有日历以及它的分辨率大小来命名。 例如,Jan文件夹将包含具有命名约定的文件: January2013_nocal_2560x1440; January2012_nocal_2560x1440;等...

对于当月,例如May,还会有一些名为的文件: 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年的所有文件夹,依此类推。

我已经研究过scandirblobexplode以及其他资源来阅读/列出每个文件夹和文件,但无法弄清楚如何按照我想要的方式订购。< / p>

非常感谢任何有关如何做到这一点的建议。

编辑: 过去几天我一直在寻找无济于事。我很欣赏到目前为止我收到的所有回复,但他们似乎都没有真正做我想做的事情。 这是我到目前为止的基本代码,它提取了我想要排序和循环的所有文件夹/文件。

$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 />";
            }
        }
    }
} 
} 

我只是不确定从哪里开始。

2 个答案:

答案 0 :(得分:1)

您只需列出所需目录中的文件即可 然后你可以使用usort

答案 1 :(得分:0)

这可能是一个有助于您入门的示例:http://www.weberdev.com/get_example.php3?ExampleID=4959 您可能必须获取数据然后对其进行排序以进行显示。

或者看:Recursive browse all server directories and list newest created files with php