显示文件夹中的文件以及这些文件的修改日期
Display files in a folder along with the date modified of those files
<?php
$filename = 'file:///C:/Users/xxx/Desktop/2017/cdr'
$files = array();
if ($handle = opendir($filename)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$files[filemtime($file)] = $file;
}
}
closedir($handle);
// sort
ksort($files);
// find the last modification
$reallyLastModified = end($files);
foreach($files as $file) {
$lastModified = date('F d Y, H:i:s',filemtime($file));
if(strlen($file)-strpos($file,".swf")== 4){
if ($file == $reallyLastModified) {
// do stuff for the real last modified file
}
echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a></td><td>$lastModified</td></tr>";
}
}
}
我一直在尝试使用此代码列出和显示文件夹中的文件以及修改日期。我一直收到错误 filemtime(): stat failed.
İ 我正在尝试使用以下代码将它们列为数组作为替代方案
<?php
$folder = 'file:///C:/Users/xxx/Desktop/2017/cdr';
$backups = array();
foreach (scandir($folder) as $node) {
$nodePath = $folder . DIRECTORY_SEPARATOR . $node;
if (is_dir($nodePath)) continue;
$backups[$nodePath] = filemtime($nodePath);
}
ksort($backups);
print_r($backups);
当我 运行 此代码时,我得到以下结果,但我不知道数字代表什么。
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1500.raw] =>1498136278
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1600.cdr] =>1498136430
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1600.raw] =>1498139955
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1700.raw] =>1498142424
我想要实现的是能够显示 CDR 中的文件及其修改日期。
<?php
function cmp($a, $b) {
if (filemtime($a) == filemtime($b))
return 0;
return (filemtime($a) < filemtime($b)) ? -1 : 1;
}
$files = glob("/Users/xxx/Desktop/2017/cdr/*.cdr");
usort($files, "cmp");
foreach($files as $file)
//echo $file . "<br />";
echo "$file was last modified: " . date ("d-m-Y H:i:s.", filemtime($file))."\n";
?>
这似乎有效。输出看起来像这样。
/2017/cdr/2017_0330_1300.cdr last modified: 30-03-2017 10:53:23.
/2017/cdr/2017_0330_1500.cdr last modified: 30-03-2017 12:18:05.
/2017/cdr/2017_0330_1600.cdr last modified:30-03-2017 13:55:21.
<?php
$filename = 'file:///C:/Users/xxx/Desktop/2017/cdr'
$files = array();
if ($handle = opendir($filename)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$files[filemtime($file)] = $file;
}
}
closedir($handle);
// sort
ksort($files);
// find the last modification
$reallyLastModified = end($files);
foreach($files as $file) {
$lastModified = date('F d Y, H:i:s',filemtime($file));
if(strlen($file)-strpos($file,".swf")== 4){
if ($file == $reallyLastModified) {
// do stuff for the real last modified file
}
echo "<tr><td><input type=\"checkbox\" name=\"box[]\"></td><td><a href=\"$file\" target=\"_blank\">$file</a></td><td>$lastModified</td></tr>";
}
}
}
我一直在尝试使用此代码列出和显示文件夹中的文件以及修改日期。我一直收到错误 filemtime(): stat failed.
İ 我正在尝试使用以下代码将它们列为数组作为替代方案
<?php
$folder = 'file:///C:/Users/xxx/Desktop/2017/cdr';
$backups = array();
foreach (scandir($folder) as $node) {
$nodePath = $folder . DIRECTORY_SEPARATOR . $node;
if (is_dir($nodePath)) continue;
$backups[$nodePath] = filemtime($nodePath);
}
ksort($backups);
print_r($backups);
当我 运行 此代码时,我得到以下结果,但我不知道数字代表什么。
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1500.raw] =>1498136278
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1600.cdr] =>1498136430
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1600.raw] =>1498139955
[file:///C:/Users/xxx/Desktop/2017/cdr17_0622_1700.raw] =>1498142424
我想要实现的是能够显示 CDR 中的文件及其修改日期。
<?php
function cmp($a, $b) {
if (filemtime($a) == filemtime($b))
return 0;
return (filemtime($a) < filemtime($b)) ? -1 : 1;
}
$files = glob("/Users/xxx/Desktop/2017/cdr/*.cdr");
usort($files, "cmp");
foreach($files as $file)
//echo $file . "<br />";
echo "$file was last modified: " . date ("d-m-Y H:i:s.", filemtime($file))."\n";
?>
这似乎有效。输出看起来像这样。
/2017/cdr/2017_0330_1300.cdr last modified: 30-03-2017 10:53:23. /2017/cdr/2017_0330_1500.cdr last modified: 30-03-2017 12:18:05. /2017/cdr/2017_0330_1600.cdr last modified:30-03-2017 13:55:21.