Dieser Artikel führt Sie hauptsächlich in das relevante Wissen über PHP-Statistiken ein und spricht darüber, wie Sie mit PHP die Anzahl der Codezeilen und die Anzahl der Dateien zählen. Ich hoffe, dass er Freunden in Not hilfreich sein wird!
Verwenden Sie PHP, um die Anzahl der Codezeilen und die Anzahl der Dateien zu zählen.
Manchmal müssen wir die Anzahl der Codezeilen und die Anzahl der Dateien zählen (z. B. bei der Beantragung einer Softcopy), die wir verwenden können PHP für Statistiken.
Legen Sie zunächst die PHP-Umgebungsvariable fest
Windows:
Arbeitsplatz->Eigenschaften->Erweiterte Systemeinstellungen->PFAD Fügen Sie das Verzeichnis hinzu, in dem sich PHP.exe befindet
Linux Richten Sie die Umgebungsvariablen ein:
vim /etc/profile PATH="$PATH:/root/php/bin/"
Führen Sie den folgenden Code im Projektordner aus
<?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); ?>
Ergebnis
Führen Sie den Code aus
php count.php
Erfolg
TotalCodeInfo Object ( [fileCount:TotalCodeInfo:private] => 1094 [lineCount:TotalCodeInfo:private] => 419702 )
Empfohlenes Lernen: „PHP-Video-Tutorial "
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel dafür, wie PHP die Anzahl der Codezeilen und die Anzahl der Dateien zählt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!