функция която показва колко файла има в дадена папка

Здрвей!

Доколкото помня имаше готова функция mapdir(), но се сещам, че изискваше включването на някакъв клас от PEAR, а на фрийхоста, който ползвах доскоро, такива екстри нямаше, така че не мога да ти помогна за нея. Чел съм и за още една, пак с някакъв клас от PEAR, която действаше аналогично - maptree(). И двете вадят файловете и директориите в масив, заедно с поддиректориите, а една от двете (май че втората) вади и файловете в поддиректориите, но както казах не съм ги ползвал и мога само принципно да ти опиша синтаксиса. Предполагам, че ако потърсиш, би могъл да намериш информация. Ако държиш да позлваш някоя от тях може би по-късно (сега съм гроги) ще мога да се сетя къде съм чел за тях.

Аз лично ползвам функцията readdir(). Тя също вади файловете и поддиректориите (предполагам, че другите две са някакви по-особени екстри, тъй като PEAR е надтсройка на РНР) и ако ти трябват файловете ще трябва само да отделиш поддиректориите. Не изисква никакво включване на класове и пр...

Синтаксисът би могъл горе-долу да бъде следният:

<?
$g=opendir("home/direktoriq_za_listwane");
while ($fajl= readdir( $g ) )
{
if(!is_dir($fajl) && !is_link($fajl) && $fajl != ".." && $fajl != ".") {
$fm[]=$fajl;
}
}

closedir ($g);

$kolko=count ($fm);
echo "$kolko";
?>


За да прочетеш директорията, трябва да я отвориш с opendir(); после с цикъл уаил прочиташ съдържанието, след това имам един ред, който взех отнякъде и малко го натъкмявах (не работи добре - маха "служебните" поддиректории - тези с' .' и '..' , но забелязах, че оставя другите поддиректории) - извършва проверка на всеки постъпващ елемент дали е файл, директория или линк (в случая линкове няма как да има - беше от някакъв код за БД, но го запазих за бъдеща употреба) и ако е файл (или поддиректория извън "служебните") го записва в масив $fm[]. С функцията count() проверяваме за броя елементи в масива и го изписваме като ехо. Всъщност от тук нататък е лесно - обработваш си масива, както ти е удобно. Ако листваш файловте може би ще е добре преди това да ги сортираш в масива - sort() или rsort(), защото readdir() връща имената в случаен ред.

Това е. Дано съм ти бил полезен.

ПП: ако ти изпише грешка при прасването виж дали няма изпуснати затварящи знаци. Огледай кода за всеки случай. Работи, ползвал съм го във всякакви скриптове с файлове.
 
да де аз използвам подобен код много неща сам направил ама ми трябва това
например имам:
sadasda.php
sadasd.html
asdasdad(броя на файловете това ми трябва)
 
Скрипт, който брои колко са файловете и папките в дадена директория: http://web-tourist.net/login/login/view.php?st=695

Код:
<?php 
$directory = opendir('files'); 
while ($file = readdir($directory)) 
{ 
$filenames[] = $file; 
} 
foreach ($filenames as $file) 
{ 
$broi=$broi+1; 
} 

$broi=$broi-2; 
echo $broi; 
?>
Автор: HunteR
 
да ама на мен ми трябва без да се влиза в папката ама то май няма да стане така
иначе за този начин се сетих
 

Горе