|
Posted by thib΄ on 01/13/08 23:20
Fred Atkinson wrote:
> On Sun, 13 Jan 2008 20:29:20 +0100, thibΒ΄ <thyb0@coralsnake-team.com>
> wrote:
>
>> Fred Atkinson wrote:
>>> I've looked at php.net and am not able to find this one.
>>>
>>> What is the function that will return the number of files in a
>>> subdirectory?
>>>
>>> Regards,
>>>
>>>
>>>
>>> Fred
>> Just try this one:
>> <?php
>> function countfiles($dir) {
>> if( $handle = opendir($dir) ) {
>> $c = 0;
>> while( $file = readdir($handle) )
>> if( !preg_match('/\.\.?/', $file) ) $c++;
>> return $c;
>> } else return false;
>> }
>> ?>
>>
>> This should make it; you can of course change de regexp filter or use
>> different methods (this one only avoids counting '.' and '..')
>>
>> Call example:
>>
>> Number of files in subdir 'dir/subdir/' is <?php echo
>> countfiles('dir/subdir/') or '[warning: unable to open dir]'; ?>
>>
>> -thibΒ΄
>
> I've tried this script. No matter how many files are in the
> directory, it says that there is only one file. The directory I used
> should have returned thirteen as a value.
>
> I tried making the path '.' so it would count the files in the
> same directory it was in. But it again said it there was only one
> when there was also thirteen files in that directory.
>
> Here is how I coded the call:
>
> <?php
> echo countfiles('.') or '[warning: unable to open dir]';
> ?>
>
> I copied it from your post. The only alterations I made were
> to make it three lines and change the directory location.
>
> Regards,
>
>
>
> Fred
Sorry, obviously my bad; I made a stupid and classic mistake in the filter;
I successfuly tested it with this new regexp: /^\.\.?$/
You might want to take a look at http://www.regular-expressions.info/ in
order to understand what you're doing ;).
-thibΒ΄
[Back to original message]
|