2013-01-07 15 views
13
<?php 
$directory = '/var/www/ajaxform/'; 
if (glob($directory . '.jpg') != false) 
{ 
    $filecount = count(glob($directory . '*.jpg')); 
    echo $filecount; 
} 
else 
{ 
    echo 0; 
} 
?> 

istnieją cztery jpg w katalogu ale zwraca 0liczba Liczba plików w katalogu w PHP

+3

tracisz * w swoim 'if' –

+0

Array ([0] =>/var/www/ajaxform/obrazu. jpg) –

+0

Możliwy duplikat [Policz ile plików w katalogu php] (http://stackoverflow.com/questions/12801370/count-how-many-files-in-directory-php) –

Odpowiedz

29

Glob zwraca array, w przypadku błędu zwraca false.

Spróbuj tego:

$directory = '/var/www/ajaxform/'; 
$files = glob($directory . '*.jpg'); 

if ($files !== false) 
{ 
    $filecount = count($files); 
    echo $filecount; 
} 
else 
{ 
    echo 0; 
} 
+0

Masz dodatkowe nawiasy. Powinien być odczytany jako '$ filecount = count ($ files);' –

+0

Thanks Fred, fixed –

+0

Serdecznie witamy. –

3

Jest to błąd w swojej strukturze glob (w razie). Tracisz *:

glob($directory . '*.jpg') 

powinien działać

5

Spróbuj tego:

<?php 
$directory = '/var/www/ajaxform/'; 
if (glob($directory . '*.jpg') != false) 
{ 
$filecount = count(glob($directory . '*.jpg')); 
echo $filecount; 
} 
else 
{ 
echo 0; 
} 
?> 
0

glob jest wielkość liter, zgodnie z docs PHP. Czy twoje rozszerzenia są małe? Czy konto wykonawcze ma dostęp do/var/www/ajaxform /?

0

Spróbuj this--

if (glob($directory . "*.jpg") != false) 
$filecount = count(glob($directory . "*.jpg")); 
else 
$filecount = 0; 
3

podejście Minimalizacja:

function getImagesNo($path) 
{ 
    return ($files=glob($path.'*.jpg')) ? count($files) : 0; 
}