0

フォルダーのすべてのファイルの合計行数を数えたかっただけです。次のphp関数は、特定のファイルのみの行番号をカウントするのに役立ちます. フォルダーからの合計行数を確認する方法は何だろうと思っています。

$lines = COUNT(FILE($file));  

ありがとうございました。!

4

5 に答える 5

1

ディレクトリを反復処理し、各ファイルをカウントしてすべてを合計することができます。また、コンテンツ全体をメモリにロードする関数を使用してfile()います。ファイルが非常に大きい場合、phpスクリプトは構成のメモリ制限に達します。

外部コマンドを使用できる場合は、1行の解決策があります。(Windowsを使用している場合は、省略してください。)

$total = system("find $dir_path -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'");
于 2012-08-10T03:31:43.077 に答える
0

おそらくこのようなもの:

<?php

$line_count = 0;
if ($handle = opendir('some/dir/path')) {
    while (false !== ($entry = readdir($handle))) {
        if (is_file($entry)) {
            $line_count += count(file($entry));
        }
    }
    closedir($handle);
}

var_dump($line_count);

?>
于 2012-08-10T03:31:17.693 に答える
0

DirectoryIteratorの標準PHPライブラリ(別名SPL)を確認してください。

$dir = new DirectoryIterator('/path/to/dir');
foreach($dir as $file ){
  $x += (isImage($file)) ? 1 : 0;
}

(参考までに、iterator_count()と呼ばれる文書化されていない関数がありますが、おそらく今のところそれに依存しないのが最善だと思います。とにかく、。や..のような見えないものを除外する必要があります。)

またはこれを試してください:-

URLを参照してください:-http://www.brightcherry.co.uk/scribbles/php-count-files-in-a-directory/

$directory = "../images/team/harry/";
if (glob($directory . "*.jpg") != false)
{
 $filecount = count(glob($directory . "*.jpg"));
 echo $filecount;
}
else
{
 echo 0;
}
于 2012-08-10T03:37:51.107 に答える
0

行数を数える非常に基本的な例は、次のようになります。これにより、xdazz の answerと同じ数が得られます。

<?php

$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__));

$lines = $files = 0;
foreach ($files as $fileinfo) {
    if (!$fileinfo->isFile()) {
        continue;
    }
    $files++;
    $read = $fileinfo->openFile();
    $read->setFlags(SplFileObject::READ_AHEAD);
    $lines += iterator_count($read) - 1; // -1 gives the same number as "wc -l"
}

printf("Found %d lines in %d files.", $lines, $files);

こちらもご覧ください

于 2012-08-10T18:52:24.660 に答える