Чем посчитать файлы?

Sower
На сайте с 30.12.2009
Offline
659
954

На сервере, в папке files лежит несколько папок с файлами. Как посчитать их общее количество? Кто нибудь может накидать простенький php код счётчика? Интересует только одна цифра - общее количество файлов находящихся в папках директории files.

__________________Бесплатная накрутка ПФ: посещаемость, просмотры, переходы с поисковиков по ключевикам, итд.
__________________Все посетители живые, не боты. (http://livesurf.ru/promo/80271)
Joker-jar
На сайте с 26.08.2010
Offline
171
#1

На баше:

find /path/to/folder/ -type f | wc -l

Можно, в принципе, ПХП скриптом это выполнять. Либо полностью реализовывать на ПХП с рекурсией, гугл в помощь

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#2

$iz=0; //Счётчик на 0

function spider($path)

{

global $iz;

$dir = opendir($path);

while($d = readdir($dir))

{

if ($d == '.' || $d == '..') continue;

if (is_file($path.'/'.$d))

{

$iz++;

}

}

else if (is_dir($path.'/'.$d)) spider($path.'/'.$d);

}

}

spider('/НАША ПАПКА С ФАЙЛАМИ/');

echo 'У нас файлов в папке: '.$iz.' шт.';

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Sower
На сайте с 30.12.2009
Offline
659
#3
LEOnidUKG:
$iz=0; //Счётчик на 0
function spider($path)
{
global $iz;
$dir = opendir($path);
while($d = readdir($dir))
{
if ($d == '.' || $d == '..') continue;
if (is_file($path.'/'.$d))
{
$iz++;
}
}
else if (is_dir($path.'/'.$d)) spider($path.'/'.$d);
}
}
spider('/НАША ПАПКА С ФАЙЛАМИ/');

echo 'У нас файлов в папке: '.$iz.' шт.';

Пишет ошибку в этой сточке

else if (is_dir($path.'/'.$d)) spider($path.'/'.$d);

ошибка

Parse error: syntax error, unexpected T_ELSE in /var/www/..../info.php on line 16

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4

<?

$iz=0; //Счётчик на 0

function spider($path)

{

global $iz;

$dir = opendir($path);

while($d = readdir($dir))

{

if ($d == '.' || $d == '..') continue;

if (is_file($path.'/'.$d))

{

$iz++;

}

else if (is_dir($path.'/'.$d)) spider($path.'/'.$d);

}

}

spider('/НАША ПАПКА С ФАЙЛАМИ/');

echo 'У нас файлов в папке: '.$iz.' шт.';

?>

Sower
На сайте с 30.12.2009
Offline
659
#5
LEOnidUKG:
<?
$iz=0; //Счётчик на 0
function spider($path)
{
global $iz;

$dir = opendir($path);
while($d = readdir($dir))
{
if ($d == '.' || $d == '..') continue;
if (is_file($path.'/'.$d))
{
$iz++;
}
else if (is_dir($path.'/'.$d)) spider($path.'/'.$d);
}
}

echo 'У нас файлов в папке: '.$iz.' шт.';
?>

Сработало. Одна тонкость... нужно убрать из кода слеши (косые черты) в строчке

spider('/НАША ПАПКА С ФАЙЛАМИ/');

А вообще, спасибо. Не первый раз помогаете.

PS. Плюсануть не получилось. Видать здесь нужно 50 человек прокликать, чтоб добавить одному и тому же человеку второй плюс. Странности настроек форума (forbidden to discuss)... :D

n0name
На сайте с 22.12.2006
Offline
54
#6

Используйте лучше функцию glob (или scandir если нужно учитывать скрытые файлы), вместо конструкций opendir/readdir. Код понятнее будет.

Сервис сравнения цена на VPS (http://vpska.com/)
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#7
Код понятнее будет.

А этот не по фэн-шую? :D

n0name
На сайте с 22.12.2006
Offline
54
#8
LEOnidUKG:
А этот не по фэн-шую? :D

Нет, с ним всё нормально :)

Но без всех этих проверок ($d == '.' || $d == '..') и открытия директории, он станет ещё фэн-шуйнее.

Sower
На сайте с 30.12.2009
Offline
659
#9
n0name:
Используйте лучше функцию glob (или scandir если нужно учитывать скрытые файлы), вместо конструкций opendir/readdir. Код понятнее будет.

И так работает нормально. За секунду обходит 30 папок и пересчитывает около 200K файлов.

dma84
На сайте с 21.04.2009
Offline
168
#10
Sower:
И так работает нормально. За секунду обходит 30 папок и пересчитывает около 200K файлов.

Ну физически он их не "обходит"

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий