Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368174
  • 博文数量: 284
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1707
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-14 16:38
文章分类

全部博文(284)

文章存档

2015年(6)

2014年(278)

我的朋友

分类: Html/Css

2014-09-12 16:25:20

1. [图片] 201312051416305445.jpg    


2. [代码]demo     

//
header("Content-type: text/html; charset=UTF-8");
include("class.lineCount.php"); 
 
?>


    Source Code Count

 
 

 
 
    $lineCount = new lineCount;
 
 
    // If no directory is given, it will use the directory of the script
 
        $lineCount->dir="../linecount";
 
 
    // Use this method to output the summary and list of files to the page
    // You can customize the HTML from within the class
 
        $lineCount->summary(1);
 
 
 
    // Use this method to get the totals as an associative array:
 
        $totals = $lineCount->summary(0);
 
        # echo $totals["folders"] / $totals["files"] / $totals["lines"]
 
?>
 
 


3. [代码]操作类     

//
header("Content-type: text/html; charset=UTF-8");
 
    class lineCount {
 
        // Don't modify these
 
            var $x   = 0;
            var $cnt = array();
 
 
 
        // Files to include in the count
 
            var $ext = array("php","phtml","php3","inc","js","html","htm","css","doc");
 
 
        // If no directory is set, the directory of the script will be used
 
            var $dir = "";
 
 
 
 
        function countLines($dir) {
             
            if (is_dir($dir)) {
                $dir=iconv("gb2312","GBK",$dir);
                if ($handle = opendir($dir)) {
 
                    // Loop through files
 
                    while (false !== ($file = readdir($handle))) { 
                        if ($file != "." && $file != "..") { 
 
                            $filePath = $dir."/".$file;
 
                            if (is_dir($filePath)) {
 
                                // Item is another folder, call the function again
 
                                $this->countLines($filePath);
 
                            } else {
 
                                // Item is a file, get some info about it
 
                                $fileName = explode("/",$filePath);
                                $fileDir  = $fileName[(count($fileName)-2)];
                                $fileName = $fileName[(count($fileName)-1)];
                                $fileExt  = explode(".",$fileName);
                                $fileExt  = $fileExt[(count($fileExt)-1)];
 
                                if (in_array($fileExt,$this->ext)) {
 
                                    // Open the file, get line count
 
                                    $fp           = fopen($filePath, "r");
                                    $buffer       = rawurlencode(fread($fp, filesize($filePath)));
                                    $buffer       = explode("%0A", $buffer);
                                    $numLines     = count($buffer);
                                    fclose($fp);
 
                                    // Add the information to our count array
 
                                    $this->cnt[$this->x]['dir']   = $dir;
                                    $this->cnt[$this->x]['file']  = $fileName;
                                    $this->cnt[$this->x]['count'] = $numLines;
                                    $this->x++;
 
                                }
                            }
 
                        } 
                    }
 
                    closedir($handle);
 
                } else {
 
                    return false;
 
                }
 
            } else {
 
                return false;
 
            }
 
        }
 
 
 
        function summary($output=1) {
 
            // $output
            //    1 to generate a summary and file list
            //    0 to get an associative array with the totals
 
            if (!(is_dir($this->dir))) { 
                // No directory given, use document root
                $this->dir = $_SERVER['DOCUMENT_ROOT'];
            }
 
            $this->countLines($this->dir);
 
 
            $listOutput = "";
            $totalLines = 0;
            $usedDir    = array();
 
            for ($i=0;$icnt);$i++) {
 
                $totalLines += $this->cnt[$i]['count'];
 
                if (!(in_array($this->cnt[$i]['dir'],$usedDir))) {
                    if ($output==1) {
                        $listOutput .= "    \n";
                        $listOutput .= "        ".iconv("GB2312","UTF-8",$this->cnt[$i]['dir'])."\n";
                        $listOutput .= "    \n";
                    }
                    $usedDir[] = $this->cnt[$i]['dir'];
                }
                if ($output==1) {
                    $listOutput .= "    \n";
                    $listOutput .= "        ".iconv("GB2312","UTF-8",$this->cnt[$i]['file'])."\n";
                    $listOutput .= "        ".number_format($this->cnt[$i]['count'])."\n";
                    $listOutput .= "    \n";
                }
            }
 
            $totalFiles   = number_format(count($this->cnt));
            $totalLines   = number_format($totalLines);
            $totalFolders = number_format(count($usedDir));
 
 
 
            if ($output==1) {
 
                print "
\n";
                print "".$this->dir."

\n\n";
                print "\n";
                print " \n";
                print "     \n";
                print " \n";
                print "
简述: ".$totalFolders."文件夹, ".$totalFiles."文件, ".$totalLines." 行代码
\n";
                print "\n";
                print " \n";
                print "     \n";
                print "     \n";
                print " \n";
 
                    print $listOutput;
 
                print "
文件名/目录代码行数
\n";
                print "\n";
                print " \n";
                print "     \n";
                print " \n";
                print "
简述: ".$totalFolders."文件夹, ".$totalFiles."文件, ".$totalLines."行代码
\n";
                print "
\n";
 
            } else {
 
                return array("files"=>$totalFiles,"lines"=>$totalLines,"folders"=>$totalFolders); 
 
            }
 
        }
 
 
    }
 
?>
阅读(399) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~