Публикации

Форумы

Как подсчитать количество файлов в каталоге (директории) PHP?
 

Как подсчитать количество файлов в каталоге (директории) PHP?

 
Модераторы: Патрик, net1313, Predator, Perfecthus, Kapman
Автор Добавил
Offline Predator
04.07.14 - 22:12
Predator


Сообщений: 3996
Допустим Вам нужно узнать, сколько всего изображений загрузили пользователи в качестве аватаров или сколько файлов в каталоге имеют расширение *.png. Подобные задачи встречаются довольно-таки часто. Так как же узнать количество файлов в каталоге?

Создадим функцию для подсчёта количества файлов в каталоге (директории) на PHP

Итак приступим...

1. dir() Возвращает экземпляр класса directory. Аргумент – путь к директории.
2. read() Метод, который читает директорию.
3. close() После прочтения закрываем директорию

С используемым функционалом разобрались, можно переходить к созданию файла с функцией. В корневом каталоге (Вы можете на своё усмотрение выбрать любой другой) создаём папку include. В ней создадим файл будущей функции и назовём его functions.php и вставим в него следующий код:
  1. <?php
  2.  
  3. function count_files($dir) {
  4.         $c=0; # Количество файлов. Считаем с нуля
  5.         $d=dir($dir);
  6.         while ($str=$d->read()) {
  7.                 if ($str{0} != '.') {
  8.                         if (is_dir($dir.'/'.$str)) $c+=count_files($dir.'/'.$str);
  9.                                 else $c++;
  10.                 }
  11.         }
  12.         $d->close(); # Закрываем директорию
  13.         return $c;
  14. }
  15.  
  16. ?>
Функция готова. Теперь в корневой директории можно создать рабочий файл с любым названием (Например: example.php), а в нём данную функцию подключить следующим образом:
  1. <?php
  2.  
  3. include_once ('include/functions.php');
  4. $count = count_files('images/photo'); # Количество фото в каталоге
  5. echo 'Количество файлов в каталоге: '.$count;
  6.  
  7. ?>
Пример результата работы данной функции:
Количество файлов в каталоге: 50

Вычисляем количество файлов конкретного типа в каталоге на PHP

Бывают случаи, когда в большом количестве файлов в каталоге нужно найти изображения с определённым расширением, либо файлы flash, либо например, таблицы MS Excel и т.п. В приведенном ниже примере рассмотрен вариант обнаружения файлов с расширением .png
  1. <?php
  2.  
  3. $path = 'images'; # Название каталога или путь до каталога
  4.  
  5. $dir = opendir ("$path"); # Открываем каталога
  6. $i = 0; # Создаём переменную для цикла
  7.  
  8. while (false !== ($file = readdir($dir))) {
  9.         # Указываем расширение файла. Вместо png укажите нужный
  10.    if (strpos($file, '.png', 1)) {
  11.                 $i++;
  12.         }
  13. }
  14. echo 'Файлов png в каталоге: '.$i
  15.  
  16. ?>
Пример результата работы:
Файлов png в каталоге: 32

Примечание: Если Вы хотите указать больше одного типа файлов, например, нужны все изображения, а это jpg, gif, png и так далее, то замените строку:
  1. if (strpos($file, '.png', 1)) {
на
  1. if (!is_dir($file) && (strpos($file, '.jpg') > 0 || strpos($file, '.gif') > 0 || strpos($file, '.png') > 0)) {
Добавлять файлы с другими расширениями можно по аналогии.


Благодарю за внимание!


Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри!
Точные машины – Форумы о разработке, проектировании, постройке и модернизации станков с ЧПУ
PWG-Extension — Development of extensions for phpBB3
Вернуться наверх
Популярность сообщения: 1
Рекламный блок
VPS
Наверх

Offline Nostromo
21.07.14 - 10:56
Nostromo

Сообщений: 147
Пригодится, побольше бы уроков выкладывали, чтобы по-инету не искать.
Вернуться наверх
Популярность сообщения: 1
 
Offline Predator
21.07.14 - 11:34
Predator


Сообщений: 3996
Сообщение от Nostromo... 
Пригодится, побольше бы уроков выкладывали, чтобы по-инету не искать.
Будет интерес у пользователей - буду выкладывать.



Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри!
Точные машины – Форумы о разработке, проектировании, постройке и модернизации станков с ЧПУ
PWG-Extension — Development of extensions for phpBB3
Вернуться наверх
Популярность сообщения: 1
 
Offline Nostromo
04.08.14 - 12:27
Nostromo

Сообщений: 147
Сообщение от Predator... 
Будет интерес у пользователей - буду выкладывать.
Смотрю желающих, как всегда - нет!

Вернуться наверх
Популярность сообщения: 0
 
Offline Predator
16.06.15 - 15:20
Predator


Сообщений: 3996
Сообщение от Nostromo... 
Смотрю желающих, как всегда - нет!
Либо никому не надо либо в интернете находят.



Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри!
Точные машины – Форумы о разработке, проектировании, постройке и модернизации станков с ЧПУ
PWG-Extension — Development of extensions for phpBB3
Вернуться наверх
Популярность сообщения: 0
 
 
Как подсчитать количество файлов в каталоге (директории) PHP?

Перейти:  Вернуться наверх