我有一个任务,我必须找到最近添加的文件夹(由日期命名)。问题是,当我用所有带日期的文件夹获取目录时,我的数组包含文件夹的完整路径,而不仅仅是日期文件夹。让mi给你和我的代码示例和样品输出......
这是我的代码
$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir');
var_dump($dirs);
$mostRecent= 0;
foreach($dirs as $date){
$curDate = strtotime($date);
if ($curDate > $mostRecent) {
$mostRecent = $curDate;
}
}
var_dump($mostRecent);
die();
这是我得到的输出
D:\wamp64\www\mypage\public_html\rest>php index.php cli/pars parseFiles
array(2) {
[0]=>
string(111) "D:\wamp64\www\mypage\public_html\rest\application\controllers\cli/../../../var/Html/2017-07-15"
[1]=>
string(111) "D:\wamp64\www\mypage\public_html\rest\application\controllers\cli/../../../var/Html/2017-07-16"
}
int(0)
所以我认为问题是因为var $ dirs包含我的目录的完整路径而不是日期文件夹名称。我怎样才能克服我的问题?谢谢
答案 0 :(得分:2)
您的代码的解决方案如下。 basename
将从完整路径字符串中为您提供文件夹名称。
$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir');
var_dump($dirs);
$mostRecent= 0;
foreach($dirs as $date){
$curDate = strtotime(basename($date));
if ($curDate > $mostRecent) {
$mostRecent = $curDate;
}
}
var_dump($mostRecent);
die();
答案 1 :(得分:2)
basename() - 返回路径的尾随名称组件。
在您的情况下,它将如下所示:
$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir');
foreach($dirs as $dir) {
var_dump(basename($dir));
}
输出:
string(10) "2017-07-15"
string(10) "2017-07-16"