2017-07-04 131 views
0
<?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失敗在文件夾中顯示文件以及這些文件的修改日期

我想它們列爲使用下面的代碼

<?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); 

當我運行這段代碼,我得到下面的結果,我不知道是什麼的數字代表陣列作爲替代。

[文件:/// C:/用戶/ XXX /桌面/ 2017/CDR \ 2017_0622_1500.raw] => 1498136278
[文件:/// C:/用戶/ XXX /桌面/ 2017 /cdr\2017_0622_1600.cdr] => 1498136430
[file:/// C:/ Users/xxx/Desktop/2017/cdr \ 2017_0622_1600.raw] => 1498139955
[file:/// C:/ Users /xxx/Desktop/2017/cdr\2017_0622_1700.raw] => 1498142424

什麼想實現的是能夠與他們的修改日期一起顯示在CDR文件。

+0

爲什麼要添加'file:///'?你想通過網絡訪問本地文件嗎?你是否試圖從其他計算機訪問文件? –

+0

@ÁlvaroGonzález。嘗試從計算機 – Belgarath

+0

訪問文件,然後使用該路徑(例如/ home/user/file.txt或C:\ files \ file.txt,具體取決於您的O/S)。 'file:///'僅用於Web瀏覽器中打開本地文件。 – ADyson

回答

0
<?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上次修改時間:30-03-2017 13:55:21。

相關問題