Rumah > Artikel > pembangunan bahagian belakang > Contoh terperinci tentang cara PHP mengira bilangan baris kod dan bilangan fail
Artikel ini terutamanya memperkenalkan anda kepada pengetahuan yang berkaitan tentang statistik PHP, dan bercakap tentang cara menggunakan PHP untuk mengira bilangan baris kod dan bilangan fail saya harap ia akan membantu rakan yang memerlukan.
Gunakan PHP untuk mengira bilangan baris kod dan bilangan fail
Kadang-kadang kita perlu mengira bilangan baris kod dan bilangan fail ( seperti memohon salinan lembut), kita boleh menggunakan PHP untuk berbuat demikian statistik.
Mula-mula tetapkan pembolehubah persekitaran PHP
Windows:
My Computer-> ->Tetapan sistem lanjutan->PATH Tambahkan direktori di mana PHP.exe berada
Pembolehubah persekitaran set Linux:
vim /etc/profile PATH="$PATH:/root/php/bin/"
dalam Jalankan kod berikut dalam folder projek
<?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); ?>
Hasil
Laksanakan kod
php count.php
Kejayaan
TotalCodeInfo Object ( [fileCount:TotalCodeInfo:private] => 1094 [lineCount:TotalCodeInfo:private] => 419702 )
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Contoh terperinci tentang cara PHP mengira bilangan baris kod dan bilangan fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!