【发布时间】:2014-10-09 20:18:09
【问题描述】:
我正在尝试制作一个使用从表单获得的日期范围的 php 文件搜索工具。 我有具有以下模式的目录。有数千个文件,但这只是一个示例。
每日文件夹
chl-2009-05-08-121000.L2_LAC.x.png
chl-2009-05-09-111500.L2_LAC.x.png
chl-2009-05-09-112000.L2_LAC.x.png etc
每周文件夹
lst-2014-W36.png
lst-2014-W37.png
lst-2014-W39.png etc
表单有一个参数字段,它将获取 chl、lst 等。其他字段来自表单日期、星期等输入字段。
所以我想要实现的是,例如,查找文件名范围为2002-04-14 和2003-05-25 的所有文件。我有一个提供日期的变量。
到目前为止,我所做的仅列出了与通配符提供的值完全匹配的文件,但我无法获取日期范围内的所有文件。我尝试了每日文件夹。
$a = glob($datadir."{". $_GET['parameter'] .'-'. $_GET["date"]. "*,". $_GET['parameter'] .'-'. $_GET["date2"]. "*}" , GLOB_BRACE);
foreach($a as $image)
{
echo "<a href='".$image."'>" . basename($image) . "</a><br />";
}
我在这里使用通配符的原因是为了避免检查像 112000.L2_LAC.x.png 这样的值。
谢谢!
【问题讨论】:
-
我检查了两次,我没有看到任何问题
-
I couldn't get range of files~How can I get the range of files? -
单独构建您的 glob 字符串,例如
$g = "...."; echo $g; glob($g);所以你可以检查它。不要只是假设它正在正确构建。 -
使用您当前的方案,您需要遍历所有具有共同点的文件,然后遍历它们并检查日期是
>还是<。 -
感谢 Dagon 和 showdev 的建议。我进行了编辑以使其更清晰。
标签: php file search range glob