如何在PHP中计算文件夹中.txt文件的数量?

5
我正在开发一个类似IMDB的网站,需要动态查找电影评论的数量。评论存储在一个名为/moviefiles/moviename/review[*].txt的文件夹中,其中[*]是评论编号。基本上我需要返回整数,显示该目录中有多少个这些文件。我该怎么做?
谢谢。
5个回答

3

使用php的DirectoryIterator或FileSystemIterator:

$directory = new DirectoryIterator(__DIR__);
$num = 0;
foreach ($directory as $fileinfo) {
    if ($fileinfo->isFile()) {
        if($fileinfo->getExtension() == 'txt')
            $num++;
    }
}

很高兴看到有人正在使用DirectoryIterator(),这种任务正是该迭代器存在的原因。 - Abela

2

首先使用glob()获取文件列表数组,然后使用count()获取数组长度,该数组长度即为文件数。

简化代码:

$txtFileCount = count( glob('/moviefiles/moviename/review*.txt') );

1

0
您可以使用此 PHP 代码获取文件夹中文本文件的数量。
<div id="header">
<?php 
    // integer starts at 0 before counting
    $i = 0; 
    $dir = 'folder-path';
    if ($handle = opendir($dir)) {
        while (($file = readdir($handle)) !== false){
            if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
            {
                $temp = explode(".",$file);
                if($temp[1]=="txt")
                    $i++;
            }
        }
    }
    // prints out how many were in the directory
    echo "There were $i files";
?>
</div>

0

这是一个非常简单的代码,运行良好。:)

$files = glob('yourfolder/*.{txt}', GLOB_BRACE);
foreach($files as $file) {
    your work
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接