Maison  >  Article  >  développement back-end  >  PHP utilise la récursivité pour calculer un exemple de code de taille de dossier

PHP utilise la récursivité pour calculer un exemple de code de taille de dossier

怪我咯
怪我咯original
2017-07-12 11:56:251041parcourir

La technique de programmation dans laquelle un programme s'appelle s'appelle la récursivité. La récursivité en tant qu'algorithme est largement utilisée dans les langages de programmation. Un processus ou une fonction a une méthode pour s'appeler directement ou indirectement dans sa définition ou sa description. Il transforme généralement un problème vaste et complexe en un problème plus petit similaire au problème d'origine à résoudre. La stratégie récursive ne nécessite qu'un petit nombre de programmes. pour décrire les multiples calculs répétés requis dans le processus de résolution de problèmes, ce qui réduit considérablement la quantité de code de programme. Le pouvoir de la récursivité réside dans la définition d'un ensemble infini de objets avec un nombre fini d'instructions. De manière générale, la récursivité nécessite des conditions aux limites, un segment aller récursif et un segment retour récursif. Lorsque les conditions aux limites ne sont pas remplies, la récursion avance ; lorsque les conditions aux limites sont remplies, la récursion revient.

Cet article présente principalement PHP pour utiliser la récursion pour calculer la taille du dossier. Le code est très simple à utiliser et est recommandé à tout le monde ici. Donnez-moi directement le code :

Le code est le suivant :

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;               //返回大小
    }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn