Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


Список файлов в папке (PHP)

Вступление

В PHP пятой версии есть отличная функция scandir, которая возвращает массив файлов и директорий в определенной директории. В качестве параметра принимает имя директории.

Список файлов и директорий

scandir принимает 2 параметра: string directory — имя директории (обязательный), integer sorting_order — необязательный параметр сортировки (два возможных значения: 0 — в алфавитном порядке по возрастанию; 1 — по убыванию).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$dir 
'/tmp';
$files1 scandir($dir);
$files2 scandir($dir1);

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] => .
)
*/
?>

Улучшаем scandir

Напишем свою функцию myscandir, которая идентична scandir за исключением того, что удаляются . и .., которые, как мне кажется, редко используются.

myscandir

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

function myscandir($dir$sort=0)
{
    
$list scandir($dir$sort);
    
    
// если директории не существует
    
if (!$list) return false;
    
    
// удаляем . и .. (я думаю редко кто использует)
    
if ($sort == 0) unset($list[0],$list[1]);
    else unset(
$list[count($list)-1], $list[count($list)-1]);
    return 
$list;
}

$dir '/tmp';
$files1 myscandir($dir);
$files2 myscandir($dir1);

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

/* Результатом будет нечто вроде:
Array
(
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
)
*/

?>

Примечание

Для работы этой функции нужна 5ятая версия PHP.

Опубликовано: 18 мая 2011  ·  Автор: Артём Фёдоров  ·  12065 просмотров

Категория

ГлавнаяПрограммированиеPHPФайлыСписок файлов в папке (PHP)

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

мне казалось легче использовать array_pop(): или array_shift(); - в зависимости от расположения точек
Wejur · 4 года назад
Файлы, PHP, Программирование

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания