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

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


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

Есть ли функция подсчета количества файлов в папке на 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('название папки'), то считает и файлы и папки в папке 'название папки'.

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

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

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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