使用PHP递归列出所有带日期的文件
发布时间:2020-12-13 16:57:38 所属栏目:PHP教程 来源:网络整理
导读:在有人标记此副本之前,请理解我搜索了此网站,Google搜索和 PHP.net. 我想要的是超级简单.我想要一个带有日期戳(最后修改)的网站上所有文件的列表.我发现有几个声称可以执行此操作的脚本,但它们都没有工作. 到目前为止我发现的最好的是这一个: header("Pragm
在有人标记此副本之前,请理解我搜索了此网站,Google搜索和
PHP.net.
我想要的是超级简单.我想要一个带有日期戳(最后修改)的网站上所有文件的列表.我发现有几个声称可以执行此操作的脚本,但它们都没有工作. 到目前为止我发现的最好的是这一个: header("Pragma: public"); header("Cache-Control: private"); header("Content-Type: text/csv"); header("Content-Disposition: attachment; filename=age-of-files.csv"); $result = array(); $handle = opendir("."); while ($datei = readdir($handle)) { if (($datei != '.') && ($datei != '..')) { $file = "./".$datei; if (!is_dir($file)) $result[] = $file; } } closedir($handle); foreach($result as $r) if (file_exists($r)) echo substr($r,2).",".date ("m-d-Y",filemtime($r))."rn"; 这适用于脚本运行的dircetory,但它不是递归的.我需要它继续为每个子目录.我的目标是有一个可排序的列表,以便我可以找到在某些日期或周围修改过的文件. 我是PHP的新手,所以请耐心等待.我在PHP.net做了一些研究(我一直看到人们提到SPL,我不确定它代表什么或它是什么,但也许它是一组标准的PHP类?),看起来我需要以某种方式使用RecursiveDirectoryIterator. 我发现这个脚本在纸上看起来很棒,但在我的网站上运行会给出一个空白的白色屏幕. try { /*** freds home directory ***/ $rdi = new recursiveDirectoryIterator('/',FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS); $it = new recursiveIteratorIterator( $rdi ); while( $it->valid()) { if( !$it->isDir() ) { echo $it->current().' '.date('Y m d H:i:s',$it->getATime() )."n"; } /*** move to the next element ***/ $it->next(); } } catch(Exception $e) { /*** echo the error message ***/ echo $e->getMessage(); } 我更喜欢使用第一个脚本,因为它创建了一个csv文件(易于排序),但我不确定如何调和这两个.有人可以告诉我如何将RDI合并到第一个脚本中吗? 解决方法
这是一个我发现工作得非常好的小代码
$rdi = new RecursiveDirectoryIterator("path/"); // The directory here $rii = new RecursiveIteratorIterator($rdi); foreach ($rii as $filename=>$cur) { echo $cur.' '.date('Y m d H:i:s',$cur->getATime() )."<br/>"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |