当前位置: 网学 > 编程文档 > PHP > 正文

PHP统计目录下的文件总数及代码行数(去除注释及空行)

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/21
=> 0, ''lineNum'' => 0, ''fileNum'' => 0);
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($this->skipDir($file)) continue;
if (is_dir($dir . ''/'' . $file)) {
$result = $this->readDir($dir . ''/'' . $file);
$num[''totalLine''] += $result[''totalLine''];
$num[''lineNum''] += $result[''lineNum''];
$num[''fileNum''] += $result[''fileNum''];
} else {
if ($this->skipFile($file)) continue;
list($num1, $num2) = $this->readfiles($dir . ''/'' . $file);
$num[''totalLine''] += $num1;
$num[''lineNum''] += $num2;
$num[''fileNum'']++;
}
}
closedir($dh);
} else {
echo ''open dir <'' . $dir . ''> error!'' . "\r";
}
return $num;
}

/**
* 读取文件
* @param string $file 文件
*/
private function readfiles($file) {
$str = file($file);
$linenum = 0;
foreach ($str as $value) {
if ($this->skipLine(trim($value))) continue;
$linenum++;
}
$totalnum = count(file($file));
if (!$this->showEveryFile) return array($totalnum, $linenum);
echo $file . "\r\n";
echo ''TotalLine in the file:'' . $totalnum . "\r\n";
echo ''TotalLine with no comment and empty in the file:'' . $linenum . "\r\n";
return array($totalnum, $linenum);
}

/**
* 执行跳过的目录规则
* @param string $dir 目录名
*/
private function skipDir($dir) {
if (in_array($dir, $this->dirSkip)) return true;
return false;
}

/**
* 执行跳过的文件规则
* @param string $file 文件名
*/
private function skipFile($file) {
if (strtolower(strrchr($file, ''.'')) != $this->ext) return true;
if (!$this->fileSkip) return false;
foreach ($this->fileSkip as $skip) {
if (strpos($file, $skip) === 0) return true;
}
return false;
}

/**
* 执行文件中行的跳过规则
* @param string $string 行内容
*/
private function skipLine($string) {
if ($string == '''') return true;
foreach ($this->lineSkip as $tag) {
if (strpos($string, $tag) === 0) return true;
}
return false;
}
}

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号