scandir

List files and directories inside the specified path

&reftitle.description; `array` `scandir` `string` `directory` `int` `sorting_order` SCANDIR_SORT_ASCENDING `resource` `context`

Returns an `array` of files and directories from the `directory`.

&reftitle.parameters;

`directory`

- The directory that will be scanned.

`sorting_order`

- By default, the sorted order is alphabetical in ascending order. If the optional `sorting_order` is set to `SCANDIR_SORT_DESCENDING`, then the sort order is alphabetical in descending order. If it is set to `SCANDIR_SORT_NONE` then the result is unsorted.

`context`

- For a description of the `context` parameter, refer to the streams section of the manual.

&reftitle.returnvalues;

Returns an `array` of filenames on success, or &false; on failure. If `directory` is not a directory, then boolean &false; is returned, and an error of level `E_WARNING` is generated.

&reftitle.changelog;

&Version; | &Description;
5.4.0 | `sorting_order` constants were added. Any nonzero value caused descending order in previous versions. So for all PHP versions, use `0` for ascending order, and `1` for descending order. An option for `SCANDIR_SORT_NONE` behavior did not exist prior to PHP 5.4.0.

&reftitle.examples;

### A simple `scandir` example

    <?php
    $dir    = '/tmp';
    $files1 = scandir($dir);
    $files2 = scandir($dir, 1);

    print_r($files1);
    print_r($files2);
    ?>

&example.outputs.similar;

    Array
    (
        [0] => .
        [1] => ..
        [2] => bar.php
        [3] => foo.txt
        [4] => somedir
    )
    Array
    (
        [0] => somedir
        [1] => foo.txt
        [2] => bar.php
        [3] => ..
        [4] => .
    )

### PHP 4 alternatives to `scandir`

    <?php
    $dir = "/tmp";
    $dh  = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
        $files[] = $filename;
    }

    sort($files);

    print_r($files);

    rsort($files);

    print_r($files);

    ?>

&example.outputs.similar;

    Array
    (
        [0] => .
        [1] => ..
        [2] => bar.php
        [3] => foo.txt
        [4] => somedir
    )
    Array
    (
        [0] => somedir
        [1] => foo.txt
        [2] => bar.php
        [3] => ..
        [4] => .
    )

&reftitle.notes; &tip.fopen-wrapper;
&reftitle.seealso;

- `opendir`
- `readdir`
- `glob`
- `is_dir`
- `sort`