array scandir ( string $directory [, int $sorting_order [, resource $context ]] )
(PHP 5)

PHP 5 이하 버전에서는 오픈하고 읽고, 닫기 순으로 처리해 주어야 가능했지만, PHP 5부터 scandir 함수 하나로 모든 처리가 가능해 졌습니다.

$directory 은 탐색할 디렉토리, $sorting_order 은 정렬 순서입니다. $sorting_order 에 1을 대입하면 역순으로 데이터를 정렬합니다.

<?php
 $dir    = '/tmp';
 $files1 = scandir($dir); // 오름차순으로 엔트리 얻기
 $files2 = scandir($dir, 1); // 내림차순으로 엔트리 얻기

 print_r($files1);
 print_r($files2);

 /*
 결과:
 Array
 (
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
 )
 Array
 (
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
 )
 */
 ?> 

readdir 함수로도 가능합니다.

<?php
 $dir = "/tmp";
 $dh  = opendir($dir);
 while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
 }
 sort($files); // 오름차순으로 정렬
 print_r($files);

 rsort($files); // 내림차순으로 정렬
 print_r($files);

 /*
 결과:
 Array
 (
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
 )
 Array
 (
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
 )
 */
 ?>

0 댓글