PHP: 파일 생성 날짜를 얻으려면 어떻게 해야 합니까?
나는 파일이 많은 폴더를 읽고 있다.
파일 생성 날짜를 얻으려면 어떻게 해야 합니까?그것을 얻을 수 있는 직접적인 기능은 보이지 않는다.
있다filemtime
그리고.filectime
.
그리고 파일이 수정되지 않으면 어떻게 됩니까?
피렉타임을 사용하다.Windows 에서는 작성 시간이 반환되고 Unix 에서는 작성 시간이 없기 때문에(대부분의 파일 시스템에서는), Unix 에서는 얻을 수 있는 최선의 변경 시간이 반환됩니다.
또, 일부의 Unix 텍스트에서는, 파일의 ctime을 파일의 작성 시각이라고 부릅니다.이는 잘못되었다.대부분의 Unix 파일시스템에서는 Unix 파일을 작성할 시간이 없습니다.
다음은 PHP 문서에서 가져온 코드 예시입니다.https://www.php.net/manual/en/function.filemtime.php
// outputs e.g. somefile.txt was last changed: December 29 2002 22:16:23.
$filename = 'somefile.txt';
if (file_exists($filename)) {
echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
코드는 파일명을 지정하고, 그것이 존재하는지 확인한 후, 다음을 사용하여 변경 시간을 표시합니다.filemtime()
.
filemtime()
는 파일에 대한 경로인1개의 파라미터를 사용합니다.이것은 상대적인 파라미터 또는 절대 파라미터입니다.
Linux 상에서 실행 중인 경우 마지막으로 수정된 날짜만 저장되므로 정보에 액세스할 수 없습니다.
파일 시스템에 따라 약간 다릅니다.ext2와 ext3은 작성 시간을 지원하지 않지만 ext4는 지원하는 것으로 알고 있습니다.
이 주제가 아주 오래됐다는 건 알지만, 만약 누군가 답을 찾고 있다면, 나로서 내 해결책을 게시할 거야.
이 솔루션은 파일 선두에 추가 데이터가 있는 것을 꺼려하지 않는 경우에 유효합니다.
기본적으로 파일이 존재하지 않는 경우 파일을 생성하고 첫 번째 줄에 현재 날짜를 추가하는 것이 좋습니다.다음으로 첫 번째 줄을 읽을 수 있습니다.fgets(fopen($file, 'r'))
, 로 변환합니다.DateTime
오브젝트나 다른 것(이상한 포맷으로 저장하지 않는 한 생으로 사용할 수 있음)과 voila - 작성 날짜가 있습니다!예를 들어 30일마다 로그 파일을 새로 고치는 스크립트는 다음과 같습니다.
if (file_exists($logfile)) {
$now = new DateTime();
$date_created = fgets(fopen($logfile, 'r'));
if ($date_created == '') {
file_put_contents($logfile, date('Y-m-d H:i:s').PHP_EOL, FILE_APPEND | LOCK_EX);
}
$date_created = new DateTime($date_created);
$expiry = $date_created->modify('+ 30 days');
if ($now >= $expiry) {
unlink($logfile);
}
}
언급URL : https://stackoverflow.com/questions/4401320/php-how-can-i-get-file-creation-date
'programing' 카테고리의 다른 글
도커 mysql 컨테이너가 가동되고 mysql이 언제 쿼리를 받을 수 있는지 어떻게 알 수 있습니까? (0) | 2022.11.19 |
---|---|
PHP 치명적 오류: 정의되지 않은 함수 curl_init() 호출 (0) | 2022.11.19 |
키를 기반으로 어레이 요소를 삭제하려면 어떻게 해야 합니다. (0) | 2022.11.19 |
JUnit 테스트는 이클립스에서는 합격하지만 Maven Surefire에서는 불합격 (0) | 2022.11.19 |
Android 장치 이름 가져오기 (0) | 2022.11.19 |