
FilesystemIterator::key 메서드는 디렉토리 내의 파일과 디렉토리의 순서에 따라 반환되는 키 값이 일정하지 않습니다.
예를 들어, 디렉토리 내의 파일과 디렉토리가 다음과 같이 있다고 가정해 보겠습니다.
`/path/to/directory`
- file1.txt
- file2.txt
- directory1
- directory2
이 경우 FilesystemIterator::key 메서드는 디렉토리와 파일의 순서에 따라 다음과 같은 키 값을 반환할 수 있습니다.
- 디렉토리와 파일이 섞여 있으면 0, 1, 2, 3의 값을 반환할 수 있습니다.
- 디렉토리와 파일이 순서대로 나열되어 있으면 0, 1, 2, 3의 값을 반환할 수 있습니다.
- 디렉토리와 파일이 순서대로 나열되어 있지 않으면 0, 2, 1, 3의 값을 반환할 수 있습니다.
FilesystemIterator::key 메서드를 사용하여 현재 아이템의 키를 얻어내는 방법은 다음과 같습니다.
#hostingforum.kr
php
$iterator = new FilesystemIterator('/path/to/directory');
foreach ($iterator as $item) {
echo $iterator->key() . "n";
}
이 코드는 디렉토리 내의 파일과 디렉토리의 순서에 따라 키 값을 반환합니다.
만약 일정한 키 값을 얻어내고 싶다면, 디렉토리 내의 파일과 디렉토리를 정렬한 후 FilesystemIterator를 사용하는 방법이 있습니다.
#hostingforum.kr
php
$iterator = new FilesystemIterator('/path/to/directory');
$iterator->setFlags(FilesystemIterator::KEY_AS_PATHNAME);
foreach ($iterator as $item) {
echo $iterator->key() . "n";
}
이 코드는 디렉토리 내의 파일과 디렉토리의 이름을 키 값으로 사용합니다.
또한, 디렉토리 내의 파일과 디렉토리를 정렬한 후 FilesystemIterator를 사용하는 방법도 있습니다.
#hostingforum.kr
php
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/directory'));
$iterator->setFlags(RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $item) {
echo $iterator->getSubPathName() . "n";
}
이 코드는 디렉토리 내의 파일과 디렉토리를 정렬한 후 키 값을 반환합니다.
위의 코드는 디렉토리 내의 파일과 디렉토리의 순서에 따라 키 값을 반환할 수 있습니다.
2025-07-17 05:56