人妻精品在线观看一区二区三区,蜜臀av精品一区二区三区网站,中文一区二区三区亚洲欧美,熟女人妇精品一区二区,人妻av在线观看视频,欧美日韩国产三级精品网站,黄色免费网站直接进入,超碰公开福利正在播放,国产毛片乡下农村妇女毛片

實(shí)例詳解PHP統(tǒng)計(jì)代碼行數(shù)及文件數(shù)量的方法-全球熱推薦

來(lái)源:php中文網(wǎng) | 2022-12-27 17:07:49 |

本篇文章主要給大家介紹有關(guān)PHP統(tǒng)計(jì)的相關(guān)知識(shí),聊聊怎么用PHP來(lái)實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)以及文件數(shù)量,希望對(duì)需要的朋友有所幫助!

用PHP統(tǒng)計(jì)代碼行數(shù)和文件數(shù)量

有時(shí)候我們需要統(tǒng)計(jì)代碼行數(shù)和文件數(shù)量(比如申請(qǐng)軟著),我們可以用 PHP 進(jìn)行統(tǒng)計(jì)。

首先設(shè)置 PHP 環(huán)境變量


(相關(guān)資料圖)

Windows:

我的電腦->屬性->高級(jí)系統(tǒng)設(shè)置->PATH 加入PHP.exe的所在目錄

Linux 設(shè)置環(huán)境變量:

vim /etc/profilePATH="$PATH:/root/php/bin/"

在項(xiàng)目文件夾里執(zhí)行以下代碼

<?php    class TotalCode {    /*** 統(tǒng)計(jì)當(dāng)前文件有多少行代碼,* @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;    }    /*** 統(tǒng)計(jì)當(dāng)前目錄下(含子目錄)* 有多少文件,以及多少行代碼** 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);?>

結(jié)果

執(zhí)行代碼

php count.php

成功

TotalCodeInfo Object                             (                                                    [fileCount:TotalCodeInfo:private] => 1094        [lineCount:TotalCodeInfo:private] => 419702  )

推薦學(xué)習(xí):《PHP視頻教程》

以上就是實(shí)例詳解PHP統(tǒng)計(jì)代碼行數(shù)及文件數(shù)量的方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

關(guān)鍵詞: