Programing

PHP : 파일 생성 날짜는 어떻게 알 수 있습니까?

lottogame 2020. 10. 22. 07:39
반응형

PHP : 파일 생성 날짜는 어떻게 알 수 있습니까?


파일이 많은 폴더를 읽고 있습니다.

파일 생성 날짜를 어떻게 알 수 있습니까? 나는 그것을 얻는 직접적인 기능을 보지 못합니다.

있다 filemtimefilectime.

파일이 수정되지 않은 경우 어떻게됩니까?


filectime을 사용하십시오 . Windows의 경우 생성 시간 을 반환하고 Unix의 경우에는 생성 시간이 없기 때문에 얻을 수있는 가장 좋은 변경 시간을 반환합니다 (대부분의 파일 시스템에서).

또한 일부 유닉스 텍스트에서는 파일의 ctime을 파일 생성 시간이라고합니다. 이것은 잘못된 것입니다. 대부분의 Unix 파일 시스템에는 Unix 파일 생성 시간이 없습니다.


안타깝게도 Linux에서 실행중인 경우 마지막 수정 날짜 만 저장되므로 정보에 액세스 할 수 없습니다.

파일 시스템에 약간 의존합니다. ext2와 ext3은 생성 시간을 지원하지 않지만 ext4는 지원한다고 생각합니다.


$filename = 'somefile.txt';

if (file_exists($filename)) {

    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}

파일 시스템에서 날짜 생성 시간을 지원하는 Mac OS X 용 솔루션이 있습니다. Mac의 PHP에서 파일의 실제 생성 시간을 어떻게 얻습니까?


이 주제가 너무 오래되었다는 것을 알고 있지만 누군가가 답을 찾고 있다면 저로서 해결책을 게시하고 있습니다.

이 솔루션은 파일 시작 부분에 추가 데이터가 있어도 괜찮은 경우에 효과적입니다.

기본적으로 아이디어는 파일이 존재하지 않는 경우 파일을 만들고 첫 번째 줄에 현재 날짜를 추가하는 것입니다. 다음으로, 첫 번째 줄을으로 읽고, fgets(fopen($file, 'r'))그것을 DateTime객체 또는 다른 것으로 바꾸고 (이상한 형식으로 저장하지 않는 한 당연히 원시적으로 사용할 수 있습니다) 짜잔-생성 날짜가 있습니다! 예를 들어 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

반응형