0

我目前得到以下代码

glob(*.php)
foreach ($files as $files..)
$content = file_get_contents($file);
$cnt=count(explode("\n", $content))
$linecount += $cnt;
echo $linecount

我有一个包含 .css、.html、.js 和 .php 文件的文件夹。现在我想计算我在他的文件中得到的所有代码行。我怎样才能做到这一点?

我在这里找到了这个如何递归计算目录中的所有代码行?

但这并没有真正帮助我,因为您似乎在做他们在 Linux shell 中所做的事情。有任何想法吗?

4

2 回答 2

0

此脚本计算指定目录中所有文件中的所有行:

$count = 0;
$handle = opendir('./'); //Path to your directory

while (false !== ($file = readdir($handle))) {
    if($file != '.' && $file != '..' && !is_dir($file)) {
        $content = file($file);
        $count = $count + count($content);
    }
}

echo 'Lines '.$count;
于 2013-05-06T13:51:46.940 回答
0

好吧,您已经看到文件夹名称,include.php因此您当前的方法不起作用。您还需要检查子文件夹,所以我建议您使用RecursiveRegexIterator

例子

$dir = new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator(
         new RecursiveFileFilterIterator($dir, "/\.(css|html|js|php)$/"));

echo iterator_count($files);

使用的类

class RecursiveFileFilterIterator  extends RecursiveRegexIterator {
    public function accept() {
        return parent::accept() && is_file($this->current());
    }
}
于 2013-05-06T13:59:03.027 回答