2013-03-13 55 views
0

在此先感谢您的帮助...找到特定文件的最新版本(按文件名)特定的文件夹中

本来,我有一个文件夹(命名为“报告”),其中的XML版本我我的应用程序的最新时间表生活。这个xml文件的命名约定是“schedule-'currentdate' - 'currenttime'.xml(例如:”schedule-20130313-070004.xml“)我没有问题使用scandir来定位这个文件并按降序对文件夹内容进行排序然后采取第一个

我现在的问题是,另一种类型的报告已被添加到文件夹(例如:“roster-20130313-07004.xml”)我以前的方法不再有效。信息在两个不同的地方(计划页面上的schedule.xml和名册页面上的roster.xml)如何搜索此文件夹,根据日期查找最新文件,并确保每个报告都结束于哪里它应该是?

+0

所以你需要找到最新版本的名册和时间表?或者只是最新的? – djjjuk 2013-03-13 15:20:51

+0

我需要找到花名册的最新版本,这样在名单页面上最准确和最新的输出将是正确的(同样按计划进行),但是一旦我已经想出了如何做到这一点,我可以将它应用到其他。 – Harlow 2013-03-13 15:24:38

回答

1

一些简单的如

$files = scandir($dir); 
$report = []; 
$schedu = []; 
foreach ($files as $file) { 
    if (strpos($file, 'report') !== false) { 
     $report << $file; 
    } else { 
     $schedu << $file; 
    } 
} 

//sort arrays 

应该工作得很好。这将取出目录结果的原始数组,并将它们放入两个新数组中,具体取决于是否包含字符串'report'。

+0

然后按照我一直在做的(降序)来排序数组? – Harlow 2013-03-13 16:06:03

+0

如果这给你最新的文件,那么是的。它基本上将它们分开,就好像它们是两个单独的目录一样,并允许您使用以前的方法来查找最新的文档。 – Sturm 2013-03-13 16:07:19

+0

该方法正在做的是将值推入适当的数组,而不是数组([0] =>报告,[1] =>调度),你将有数组([0] =>报告)和数组([ 0] => schedule)。 – Sturm 2013-03-13 16:08:25

相关问题