Перейти к контенту

подсчет кол-ва файлов в папке


Рекомендуемые сообщения

Есть ли функция подсчета количества файлов в папке на PHP? Т.е. нужно постоянно в скрипте подсчитывать кол-во фалов. Лучше бы встроеная была... Или если нету, то как выглядит самая оптимальная функция?
Ссылка на комментарий
Поделиться на других сайтах

Да кстати мне тоже интересно ! Есть такой скрип, чтоб его в папку кинуть, он подсчитал файлы, а потом путём вставки этого файла в страницу, мы видели число файлов ? Очень полезная штука !
Ссылка на комментарий
Поделиться на других сайтах

Да это не то, но там есть такая функция ! Это переделывать под сайт просто нереально ! Надобы что-то другое ! Даже не знаю что искать если честно !
Ссылка на комментарий
Поделиться на других сайтах

Работа с директориями,

http://www.php.net/manual/en/function.readdir.php

(данные примеры помогут вам самостоятельно сделать счетчик файлов)

Ссылка на комментарий
Поделиться на других сайтах

Вот:

 

if ($handle = opendir('.')) {

$k=0;

while (false !== ($file = readdir($handle))) {

    if ($file != "." && $file != ".." && !is_dir($file)) {

        $k++;

    }

}

closedir($handle);

echo "Количество файлов: $k";

}

 

Вроде работает и считает только файлы (без вложеных папок).

Ссылка на комментарий
Поделиться на других сайтах

TAPAKAH2

Так возьми код, той функции, и доработай под сайт...

Добавлено в [mergetime]1089913372[/mergetime]

Ну вот вам рабочий код

<?php
// Обратите внимание, что оператор !== не существовал до версии 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
   echo "Дескриптор каталога: $handle\n";
   echo "Файлы:\n";

   /* Именно этот способ чтения элементов каталога является правильным. */
   while (false !== ($file = readdir($handle))) { 
       echo "$file\n";
   }

   /* Этот способ НЕВЕРЕН. */
   while ($file = readdir($handle)) { 
       echo "$file\n";
   }

   closedir($handle); 
}
?>

 

Софициального мануала php :D

Ссылка на комментарий
Поделиться на других сайтах

А вот из кода Hostem,

Что говорит это :

$k=0; :D

Добавлено в [mergetime]1089913889[/mergetime]

А это тоже будет работать ?

<?php

$dir    = '/tmp';

$files = scandir($dir);

 

print_r($files);

?>

Ссылка на комментарий
Поделиться на других сайтах

А можно сделать, чтобы файлы определённого формата считала ? Например *.exe а другие пропускала ????
Ссылка на комментарий
Поделиться на других сайтах

TAPAKAH2

Да!

<?
function CheckExt($filename, $ext) {
$passed = FALSE;
$testExt = "\.".$ext."$";
if (eregi($testExt, $filename)) {
$passed = TRUE;
}
return $passed;
}

//Define an array of common extensions.
$exts = array("gif","jpg$|\\.jpeg","png","bmp");

echo "<b>Images in this folder:</b>";
$dir = opendir(".");
$files = readdir($dir);

while (false !== ($files = readdir($dir))) {
foreach ($exts as $value) {
if (CheckExt($files, $value)) {
echo "<a href=\"$files\">$files</a>\n";
$count++; //Keep track of the total number of files.
break; //No need to keep looping if we've got a match.
}
}

}
echo $count." image(s) found in this directory.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Refresh</a>\n";
//Be a good script and clean up after yourself...
closedir($dir);

?>

 

Всё работает!

Ссылка на комментарий
Поделиться на других сайтах

Roix

А вот из кода Hostem,

Что говорит это :

$k=0; 

 

Перед циклом обнуляем счетчик. А что?

Добавлено в [mergetime]1089964313[/mergetime]

Вот у меня если написать opendir('.'), то считает одни файлы, но в той директории где находится скрипт, а если opendir('название папки'), то считает и файлы и папки в папке 'название папки'.

Ссылка на комментарий
Поделиться на других сайтах

А можно сделать чтоб он ещё сколько мб считал ?

тоже самое, но ты суммируешь размер всех файлов... а примеры ты можешь взять из уже приведенной мною ссылки.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.