Hàm filemtime() trong PHP
Trần Thị Vân
- 1241
- 09/08/2025
Chức năng của Hàm filemtime() trong PHP
Hàm filemtime() trong PHP dùng để lấy thời gian lần cuối cùng một tệp được thay đổi nội dung, kết quả trả về số mili giây.
Cú pháp của Hàm filemtime() trong PHP
$số_mili_giây = filemtime("đường_dẫn_đến_file");
đường_dẫn_đến_file: Đường dẫn đến file.
$số_mili_giây: Kết quả trả về là số mili giây, là thời gian lần cuối cùng tệp được thay đổi nội dung.
Code Hàm filemtime() trong PHP
<?php
// Đường dẫn đến file
$filenguon = 'thumuctest/test.txt';
// Lấy thời gian lần cuối cùng một tệp được thay đổi nội dung
$thoigian = filemtime($filenguon);
// Xem thời gian lần cuối cùng một tệp được thay đổi nội dung
echo $thoigian."<br>";
echo "Thời gian thay đổi nội dung của file $filenguon lần cuối: ".date("d/m/Y H:i:s",$thoigian);
?>
Kết quả:
1754742682
Thời gian thay đổi nội dung của file thumuctest/test.txt lần cuối: 09/08/2025 19:31:22
Ứng dụng hàm filemtime() trong PHP vào thực tế
Hàm filemtime() không chỉ dùng để lấy thời điểm một tệp được chỉnh sửa. Khi kết hợp đúng với các thao tác xử lý file, hàm này có thể giúp PHP xác định dữ liệu đã cũ hay chưa, kiểm soát thời gian cập nhật tài nguyên và hạn chế việc sử dụng lại nội dung không còn mới.
Kiểm tra thời gian cập nhật file trước khi xử lý
Trong những chương trình PHP thường xuyên đọc hoặc xử lý file, việc kiểm tra thời gian thay đổi trước khi thực hiện tác vụ có thể giúp tránh các bước xử lý không cần thiết. filemtime() trả về thời điểm file được sửa đổi lần cuối dưới dạng Unix timestamp, từ đó có thể đem so sánh với thời gian hiện tại.
Ví dụ, website có một file dữ liệu chỉ cần xử lý lại khi đã được cập nhật. PHP có thể kiểm tra thời gian sửa đổi của file trước, sau đó mới quyết định có thực hiện quá trình xử lý hay không.
<?php
$file = 'data.json';
if (file_exists($file)) {
$lastModified = filemtime($file);
if (time() - $lastModified > 3600) {
echo 'File đã quá 1 giờ chưa được cập nhật.';
} else {
echo 'File vẫn còn mới.';
}
}
?>
Cách làm này đặc biệt hữu ích với các tác vụ như đọc dữ liệu định kỳ, tạo nội dung tạm thời hoặc kiểm tra file trước khi chạy một quy trình xử lý. Tuy nhiên, nên kiểm tra file_exists() trước khi gọi filemtime() để tránh xử lý một đường dẫn không tồn tại.
Kết hợp filemtime() để tạo cache cho website
Một cách sử dụng thực tế khác là dùng thời gian sửa đổi của file để xác định phiên bản dữ liệu cache. Thay vì tạo một mã phiên bản cố định, PHP có thể lấy timestamp của file làm dấu hiệu nhận biết phiên bản hiện tại.
Ví dụ, khi một file dữ liệu được thay đổi, timestamp do filemtime() trả về cũng thay đổi. Hệ thống có thể dựa vào giá trị này để biết cache cũ không còn phù hợp và tiến hành tạo lại dữ liệu.
<?php
$file = 'data.json';
if (file_exists($file)) {
$cacheVersion = filemtime($file);
echo 'Phiên bản dữ liệu: ' . $cacheVersion;
}
?>
Ưu điểm của phương pháp này là không cần tự quản lý một số phiên bản riêng cho từng file. Khi file nguồn thay đổi, phiên bản dựa trên thời gian cũng tự thay đổi theo. Điều này phù hợp với các website có nhiều dữ liệu được sinh từ file và cần xác định thời điểm nội dung cần được làm mới.
Sử dụng filemtime() để tự động cập nhật phiên bản CSS và JavaScript
Đây là một ứng dụng rất thực tế của filemtime() đối với website PHP. Trình duyệt thường lưu CSS và JavaScript vào bộ nhớ đệm để tăng tốc độ tải trang. Vì vậy, sau khi chỉnh sửa file, người dùng đôi khi vẫn nhận được phiên bản cũ.
Có thể giải quyết vấn đề này bằng cách thêm thời gian sửa đổi của file vào tham số truy vấn. Khi CSS hoặc JavaScript được cập nhật, giá trị do filemtime() tạo ra thay đổi, khiến trình duyệt nhận diện đây là một URL tài nguyên mới.
<?php
$cssFile = 'css/style.css';
$cssVersion = file_exists($cssFile) ? filemtime($cssFile) : time();
?>
<link rel="stylesheet" href="css/style.css?v=<?php echo $cssVersion; ?>">
Chẳng hạn, lần đầu tài nguyên có thể được tải với một URL chứa phiên bản dựa trên timestamp. Sau khi style.css được chỉnh sửa, timestamp thay đổi và URL cũng thay đổi theo. Trình duyệt sẽ tải file mới thay vì tiếp tục sử dụng bản cache cũ.
Cách này giúp quá trình cập nhật tài nguyên diễn ra tự động, đặc biệt phù hợp với website đang phát triển thường xuyên và không muốn phải thay đổi thủ công số phiên bản sau mỗi lần chỉnh sửa CSS hoặc JavaScript.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm filemtime() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *