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

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

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

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

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

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


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

          Windows:

          我的電腦->屬性->高級系統(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)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

          關(guān)鍵詞:

          亚洲中文字幕丝袜制服一区| 亚洲综合久久精品无码色欲| 亚洲六月丁香六月婷婷色伊人| 久久亚洲国产成人亚| 亚洲午夜精品一级在线播放放| mm1313亚洲国产精品美女| 亚洲AV无码一区二区三区电影 | 亚洲男人天堂2018av| 亚洲免费在线视频播放| 亚洲精品欧洲精品| 亚洲精品乱码久久久久蜜桃 | 亚洲一级特黄大片无码毛片| 亚洲精品国产自在久久| 亚洲国产综合精品一区在线播放| yy6080久久亚洲精品| 亚洲国产精品日韩| 超清首页国产亚洲丝袜| 亚洲日韩精品射精日| 国产亚洲精品资源在线26u| 亚洲国产精品无码专区| 亚洲A∨无码无在线观看| 久久久久亚洲AV无码网站| 亚洲精品美女视频| 亚洲国产成人综合| 四虎亚洲精品高清在线观看| 亚洲乱码无人区卡1卡2卡3| 久久精品国产亚洲AV天海翼| 亚洲а∨天堂久久精品| 狠狠亚洲狠狠欧洲2019| 久久精品国产亚洲综合色| 亚洲今日精彩视频| 亚洲国色天香视频| 国产亚洲精品影视在线| 亚洲AV色无码乱码在线观看| 亚洲国产成人久久一区久久| 国产av无码专区亚洲国产精品| 亚洲一区AV无码少妇电影☆| 久久综合九九亚洲一区| 亚洲国产美女在线观看| 亚洲熟女乱色一区二区三区| 国产成人亚洲综合无|