[ PHP ] – 列出所有異動檔案 包含子目錄中的子目錄

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

最近因為工作上需要每天將有修改的程式上git,所以寫了這隻程式 可以透過網址列傳日期參數,然後就列出該日期有異動的所有檔案 包含子目錄 及子目錄中的子目錄

你可以看到
完整路徑/檔名.副檔名
異動的 日期時間
檔案大小
[php]
<?php
function bytes2kbmb($filesize){
if ($filesize<1048576) return number_format($filesize/1024,1) . " KB";
if ($filesize>=1048576 && $filesize<1073741824) return number_format($filesize/1048576,1) . " MB";
if ($filesize>=1073741824 ) return number_format($filesize/1073741824,1) . " GB";
}
function get_allfiles($path,&$files) {
if(is_dir($path)){
$dp = dir($path);
while ($file = $dp ->read()){
if($file !="." && $file !=".."){
get_allfiles($path."/".$file, $files);
}
}
$dp ->close();
}
if(is_file($path)){
$files[] = $path;
}
}
function get_filenamesbydir($dir){
$files = array();
get_allfiles($dir,$files);
return $files;
}
$today=isset($_GET[‘dt’])?$_GET[‘dt’]:date ("Y-m-d");
$filenames = get_filenamesbydir(".");
foreach ($filenames as $value) {
echo (date ("Y-m-d", filemtime($value))==$today?’ ‘.$value.’ <br/> ‘.date ("Y-m-d H:i:s", filemtime($value)).’ ‘.’ <br/> ‘.bytes2kbmb(filesize($value)).'<br/><br/>’:”);
}
?>
[/php]
使用了上述程式後發現,因為會列出所有異動檔有時候非 .php的檔案太多畫面會很長,改成以下這樣就可以只顯示php檔。
[php]
foreach ($filenames as $value) {
$path_parts = pathinfo($value);
if($path_parts[‘extension’]==’php’){
echo (date ("Y-m-d", filemtime($value))==$today?’ ‘.$value.’ <br/> ‘.date ("Y-m-d H:i:s", filemtime($value)).’ ‘.’ <br/> ‘.bytes2kbmb(filesize($value)).'<br/><br/>’:”);
}
}
[/php]
參考連結:
https://blog.csdn.net/markely/article/details/8805492
http://tw2.php.net/pathinfo

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *