Cet article vous présente principalement les connaissances pertinentes sur les statistiques PHP et explique comment utiliser PHP pour compter le nombre de lignes de code et le nombre de fichiers. J'espère qu'il sera utile aux amis dans le besoin !
Utilisez PHP pour compter le nombre de lignes de code et le nombre de fichiers
Parfois, nous devons compter le nombre de lignes de code et le nombre de fichiers (comme par exemple demander une copie électronique), nous pouvons utiliser PHP pour les statistiques.
Définissez d'abord la variable d'environnement PHP
Windows :
Poste de travail->Propriétés->Paramètres système avancés->PATH Ajoutez le répertoire où se trouve PHP.exe
Linux Configurer l'environnement Variables :
vim /etc/profile PATH="$PATH:/root/php/bin/"
Exécuter le code suivant dans le dossier du projet
<?php class TotalCode { /** * 统计当前文件有多少行代码, * @return TotalCodeInfo */ public function totalByFile($fullFileName) { $fileContent = file_get_contents($fullFileName); $lines = explode("\n",$fileContent); $lineCount = count($lines); for ($i = $lineCount -1; $i > 0; $i -= 1) { $line = $lines[$i]; if ($line != "") break; $lineCount -= 1; //最后几行是空行的要去掉。 } unset($fileContent); unset($lines); $totalCodeInfo = new TotalCodeInfo(); $totalCodeInfo->setFileCount(1); $totalCodeInfo->setLineCount($lineCount); return $totalCodeInfo; } /** * 统计当前目录下(含子目录) * 有多少文件,以及多少行代码 * * totalInfo = array( "fileCount"=>?,"lineCount"=>? ); * * @return TotalCodeInfo */ public function totalByDir($dirName) { $fileList = scandir($dirName); $totalCodeDir = new TotalCodeInfo(); foreach ($fileList as $fileName) { if ($fileName == "." || $fileName == "..") continue; $fullFileName = $dirName . "/" . $fileName; if (is_file($fullFileName)) { $totalCodeSub = $this->totalByFile($dirName . "/" . $fileName); } else if (is_dir($fullFileName)) { $totalCodeSub = $this->totalByDir($dirName . "/" . $fileName); } else { $totalCodeSub = new TotalCodeInfo(); } $totalCodeDir->increaseByOther($totalCodeSub); } return $totalCodeDir; } public function totalByDirOrFile($dirOrFileName) { if (is_dir($dirOrFileName)) { return $this->totalByDir($dirOrFileName); } else if (is_file($dirOrFileName)) { return $this->totalByFile($dirOrFileName); } else { return new TotalCodeInfo(); } } public function test() { $re = $this->totalByDir("/export/www/pm_web/configs"); var_dump($re); } public function main($dirList) { $totalCodeAll = new TotalCodeInfo(); foreach($dirList as $dirName) { $totalCodeSub = $this->totalByDirOrFile($dirName); $totalCodeAll->increaseByOther($totalCodeSub); } print_r($totalCodeAll); } } class TotalCodeInfo { private $fileCount = 0; private $lineCount = 0; public function getFileCount() { return $this->fileCount; } public function getLineCount() { return $this->lineCount; } public function setFileCount($fileCount) { $this->fileCount = $fileCount; return $this; } public function setLineCount($lineCount) { $this->lineCount = $lineCount; return $this; } /** * 累加 */ public function increaseByOther($totalCodeInfo) { $this->setFileCount( $this->fileCount + $totalCodeInfo->getFileCount()); $this->setLineCount( $this->lineCount + $totalCodeInfo->getLineCount()); return $this; } } $dirList = array(); $dirList[] = "./"; $obj = new TotalCode(); $obj->main($dirList); ?>
Résultat
Exécuter le code
php count.php
Succès
TotalCodeInfo Object ( [fileCount:TotalCodeInfo:private] => 1094 [lineCount:TotalCodeInfo:private] => 419702 )
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!