ホームページ  >  記事  >  バックエンド開発  >  PHP は再帰を使用してフォルダー サイズを計算するサンプル コード

PHP は再帰を使用してフォルダー サイズを計算するサンプル コード

怪我咯
怪我咯オリジナル
2017-07-12 11:56:251051ブラウズ

プログラム自身を呼び出すプログラミング手法は再帰と呼ばれます。アルゴリズムとしての再帰は、プログラミング言語で広く使用されています。 プロセスまたは関数には、その定義または記述内で直接的または間接的にそれ自体を呼び出すメソッドがあります。通常、大規模で複雑な問題を、元の問題と同様の小さな問題に変換します。必要なプログラムは少数です。問題解決プロセスで必要となる複数の繰り返し計算を記述するため、プログラム コードの量が大幅に削減されます。再帰の力は、有限数のステートメントを使用して オブジェクト の無限のコレクションを定義することにあります。一般に、再帰には境界条件、再帰的な前方セグメント、および再帰的な戻りセグメントが必要です。境界条件が満たされない場合は再帰が進み、境界条件が満たされると再帰が戻ります。

この記事では主に recursion を使用してフォルダー サイズを計算するための PHP を紹介します。コードは非常に簡単なので、ここで皆さんにお勧めします。 コードを直接送信します:

コードは次のとおりです:

protected function dir_size($dir){
        $dh = opendir($dir);             //打开目录,返回一个目录流
        $size = 0;      //初始大小为0 
        while(false !== ($file = @readdir($dh))){     //循环读取目录下的文件
           if($file!='.' and $file!='..'){
            $path = $dir.'/'.$file;     //设置目录,用于含有子目录的情况
                if(is_dir($path)){
                $size += $this->dir_size($path);  //递归调用,计算目录大小
                }elseif(is_file($path)){
                    $size += filesize($path);   //计算文件大小
                }
            } 
        }   
        closedir($dh);             //关闭目录流
        return $size;               //返回大小
    }

以上がPHP は再帰を使用してフォルダー サイズを計算するサンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。