2012-07-22 31 views
18

Vì vậy, tôi có ứng dụng này xử lý tệp CSV. Tôi có một dòng mã để tải tệp.Cách lấy tệp mới nhất trong một thư mục trong php

$myFile = "data/FrontlineSMS_Message_Export_20120721.csv"; //The name of the CSV file 
$fh = fopen($myFile, 'r');        //Open the file 

Tôi muốn tìm một cách thức mà tôi có thể tìm trong thư mục data và nhận file mới nhất (tất cả họ đều có thẻ ngày vì vậy họ sẽ được theo thứ tự bên trong của data) và thiết lập tên bằng $myFile.

Tôi thực sự không thể tìm và hiểu tài liệu về các thư mục php để mọi tài nguyên hữu ích cũng được đánh giá cao. Cảm ơn bạn.

Trả lời

30

Dưới đây là một nỗ lực sử dụng scandir, giả sử các tập tin chỉ trong thư mục là các tập tin ghi lại ngày tháng bạn muốn:

$files = scandir('data', SCANDIR_SORT_DESCENDING); 
$newest_file = $files[0]; 

Đầu tiên chúng ta liệt kê tất cả các file trong thư mục theo thứ tự giảm dần, sau đó, tùy theo một là đầu tiên trong danh sách đó có tên tệp "lớn nhất" - và do đó giá trị dấu thời gian lớn nhất - và do đó là giá trị mới nhất.

Lưu ý rằng scandir đã được bổ sung trong PHP 5, nhưng its documentation page cho thấy làm thế nào để thực hiện hành vi đó trong PHP 4.

+0

Điều này có vẻ tốt. Tôi sẽ thử. – Mike

+1

@Mike: Cool :) Tôi đang đi từ hộp hỗ trợ PHP của tôi ngay bây giờ, vì vậy mẫu này, trong khi chỉ có hai dòng dài, chưa được kiểm tra, vì vậy hãy cho tôi biết nếu nó không làm những gì nó .ta. – Matchu

+1

Làm việc tuyệt vời, cảm ơn! Tôi nghĩ tôi cần thêm '/' vào 'dữ liệu' để làm cho nó hoạt động. – Mike

Các vấn đề liên quan