script, който брои коко файла има

crystalline

Registered
здравейте,
трябва си скрипт, който да брои колко файла (изобржанеия примерно) има в една папка...и да изкара тези данни..примерно ако в папка ЕДНО имам 10 снимки...на старница.пхп с помоща на този скрипт за мога да изкарам че в папка ЕДНО има 10 снимки...

на мен ми се струва доста простичко, надявам се че има някакво решение..
благодаря предварително 8)
 
mute така ще брои всички файлове :) + само на php5
<?php
echo sizeof( glob("image/{*.jpg,*.gif,*.JPG,*.png}", GLOB_BRACE));
?>
image е папката.
така само файловете jpg gif и png ще брои
 
Здравей!

За простичко, простичко е, но има доста варианти. Само бройката ли ще изписваш?

Единия начин е да прочетеш директорията -две функции, по-новата scandir():

<?
$dir ='директорията_за_четене';
while ($file= scandir($dir) )
{
if(!is_dir($filel) && !is_link($file) && $file != ".." && $file != ".") {
$fm[]=$file;
}
}
$broi=count($fm);
echo "$broi";
?>



Не съм я ползвал, но мисля, че синтаксисът по-горе е правилен. И по-старата функция - readdir(), която преди това изисква отваряне на директорията с opendir() и разбира се - затваряне в края с closedir ();:

<?
$dir=opendir('директорията_за_четене');
while ($file= readdir( $dir ) )
{
if(!is_dir($filel) && !is_link($file) && $file != ".." && $file != ".") {
$fm[]=$file;
}
}
closedir ($dir);

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


Иф-условието трябва да игнорира служебните директории във всяка директория (тези означени с: "." и ".."), както поддиректориите и да отдели само файловете. Този ред го взех още навремето от някакъв код и така си го пазя - с условието (Ис_линк) :)

В крайна сметка ще получиш броя на файловете...
Ако искаш да ги покажеш, можеш да обходиш масива $fm[] - в него са имената им...

Това е от мен, успех!
 
Малка неточност.
<?
$dir=opendir('директорията_за_четене');
while ($file= readdir( $dir ) )
{
if(!is_dir($filel) && !is_link($file) && $file != ".." && $file != ".") {
$fm[]=$file;
}
}
closedir ($dir);

$broi=count($fm);
echo= "$broi";
?>
Тези с червеното ги изтрий. А защо първият код дава много зор на сървъра и казва Erorr: Maximum ececution time .....

ПП: $filel) моя грешка
 
За скандир не съм много сигурен в синтаксиса. :(
readdir() чете хаотично и взема по един файл. Реших, че принципа на scandir(); трябва да е сходен...

За грешките по втория скрипт си прав, просто бързах да уловя точката :D
 
Пич ето ти скрипт който брой файловете в определени папки и общия им брой :) ( php4 )

Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<?php 
function countfiles($folder){ 
global $num; 
$dir = opendir($folder); 
while ($failove = readdir($dir)) 
{ 
if($failove == '.' || $failove == '..') continue; 
$obshto[] = $failove; 
$num++; 
} 
return count($obshto); 
} 
$documents = countfiles('./Documents/files/'); 
$archive = countfiles('./archive/files/'); 
$images = countfiles('./images/files/'); 
$java = countfiles('./java/files/'); 
$subs = countfiles('./subs/files/'); 
echo 'Качени файлове: <br/>'; 
echo 'Документи: '.$documents.'<br/>'.chr(10); 
echo 'Картинки: '.$images.'<br/>'.chr(10); 
echo 'Java: '.$java.'<br/>'.chr(10); 
echo 'Субтитри: '.$subs.'<br/>'.chr(10); 
echo 'Общо: '.$num.'<br/>'.chr(10); 
?>

Написан от: bafitu
 
Ето го с scandir()
Код:
<?php
$cwd = getcwd();
$dir = scandir($cwd);
if(!is_dir($cwd) && !is_link($cwd) && $file != ".." && $file != ".") { 
$fm[]=$cwd; 
} 
echo COUNT($fm);
?>
 

Back
Горе