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

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

你可以看到
完整路徑/檔名.副檔名
異動的 日期時間
檔案大小

<?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檔。

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/>':'');
   }
}  

參考連結:
https://blog.csdn.net/markely/article/details/8805492
http://tw2.php.net/pathinfo

喜歡我的文章嗎?歡迎按讚加分享,或是點擊右方廣告讚助我喝一杯咖啡吧 ^_^ =>

建立一個對話

你的電子郵件位址並不會被公開。 必要欄位標記為 *