在服務器中,有一些 csv 文件。我想獲取數組中的所有 csv 文件,然后從數組中讀取最后更新的 csv 文件。然后,我想將最后更新的 CSV 數據保存到一個數組中。我從目錄中獲取所有文件名。但我無法讀取 csv 文件。我該如何解決這個問題?這是我的代碼。//directory$dir = DATA_DIR . '/' . date("Y") . '/' . date("md");//copy filenames to array$files = array();$files = glob($dir."/*.csv");// sort files by last modified dateusort($files, function($x, $y) { return filemtime($x) < filemtime($y);});$baseFile = [];foreach($files as $file) { if (($handle = fopen($file, "r")) !== FALSE) { $baseFile[] = basename($file); } else { echo "Could not open file: " . $file; }}print_a($baseFile);// output of baseFile array/*Array([0] => 34342658.csv[1] => 34342325.csv[2] => 34342007.csv[3] => 34341709.csv[4] => 34341407.csv[5] => 34341077.csv[6] => 34340752.csv.............)*/// print the last updated csv file nameprint_a($baseFile[0]);// output: 34342658.csv$csvFile = file($baseFile[0]);print_a($csvFile);
1 回答

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
你有一個錯誤。$baseFile
數組只包含文件名,不包含路徑。file(...)
調用函數時必須使用完整路徑。
在您的情況下,它應該是:
$csvFile = file($dir . '/' . $baseFile[0]);
也只是一個通知-您fopen()
多次調用但從不關閉處理程序。您應該fclose()
每次調用都不要留下一堆打開的描述符。
- 1 回答
- 0 關注
- 115 瀏覽
添加回答
舉報
0/150
提交
取消