>백엔드 개발 >PHP 튜토리얼 >PHP의 glob() 함수로 검색된 파일을 마지막 수정 날짜별로 어떻게 정렬할 수 있나요?

PHP의 glob() 함수로 검색된 파일을 마지막 수정 날짜별로 어떻게 정렬할 수 있나요?

DDD
DDD원래의
2024-11-28 15:12:14692검색

How Can I Sort Files Retrieved with PHP's glob() Function by Their Last Modified Date?

glob()을 사용하여 마지막 수정 날짜별로 파일 정렬

파일 시스템으로 작업할 때 속성을 기준으로 파일을 구성하는 것이 바람직한 경우가 많습니다. , 수정 시간 등. PHP에서는 glob() 함수를 사용하여 파일 배열을 검색할 수 있지만 기본적으로 파일 순서를 유지하지 않습니다.

도전 과제: 수정 날짜별 정렬

glob()을 사용하여 얻은 파일 배열이 있고 각 파일의 마지막 수정된 날짜/시간 스탬프를 기준으로 이 배열을 정렬한다고 가정합니다. 배열을 반복하고 이를 별도의 배열로 수동으로 정렬하는 것이 가능한 옵션이지만 가장 효율적이거나 편리한 접근 방식은 아닙니다.

해결책: create_function() 사용

PHP 7.2 이전에는 create_function() 함수가 익명 함수를 정의하는 방법을 제공했습니다. usort()와 함께 사용하여 파일의 수정 시간을 비교하고 그에 따라 배열을 정렬할 수 있습니다.

usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));

이 코드에서 create_function()은 파일의 수정 시간을 빼는 익명 함수를 정의합니다. 두 번째 파일($b)의 첫 번째 파일($a)입니다. 이 뺄셈의 결과는 연대순을 나타냅니다. 그런 다음 usort()는 이 함수를 사용하여 $myarray를 수정 시간을 기준으로 오름차순으로 정렬합니다.

create_function() 지원 중단

안타깝게도 create_function()은 PHP 7.2에서는 더 이상 사용되지 않으며 PHP 8.0에서는 제거되었습니다. 이는 위의 코드가 최신 버전의 PHP에서 더 이상 작동하지 않음을 의미합니다.

대체 솔루션

glob() include를 사용하여 마지막 수정 날짜별로 파일을 정렬하는 대체 솔루션 :

  • usort()와 비교 함수 사용: 다음을 활용하는 사용자 정의 비교 함수를 정의합니다. filemtime() 함수를 사용하여 이를 usort()에 전달합니다.
  • SORT_NATURAL 플래그와 함께 sort() 함수 사용: 파일 이름이 자연 정렬을 허용하는 방식으로 구조화된 경우 sort( ) 함수를 SORT_NATURAL 플래그와 함께 사용하세요.

위 내용은 PHP의 glob() 함수로 검색된 파일을 마지막 수정 날짜별로 어떻게 정렬할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.