|
 |
Путь: Шпаргалки
Шпаргалки
Автор: - Azazel
Дата публикации - 25.07.2006
Просмотров: - 4317
Кол-во написаного кода в проекте
Требования: PHP5+
Небольшой класс для подсчета обьема написаного кода. Писалось за 20 минут и может быть плохо расширяемым, но уже функционирует:
[php]
class LineCounter {
private $total_lines;
private $total_files;
private $start_path;
private $level;
private $mask;
//start_path - путь к каталогу с которого начинать счетчик
//level - глубина проникновения счетчика
//mask - маска файлов попадающих под счет
public function __construct($start_path, $level, $mask) {
$this->start_path = $start_path;
$this->level = $level;
$this->mask = $mask;
}
private function countLines($fpath) {
$fp = fopen($fpath, "r");
$i = 0;
while (!feof($fp)) {
fgets($fp);
$i++;
}
return $i;
}
private function buildFileList() {
$file = glob($this->start_path.$this->mask);
$full_p = $this->start_path;
for ($i = 0; $i < $this->level; $i++) {
$full_p .= str_repeat('*/', $i);
$file = array_merge($file, glob($full_p.$this->mask));
}
return $file;
}
private function getTotalLines($files_array) {
$total_f = 0;
foreach ($files_array as $f) {
$total += countLines($f);
}
$this->total_lines = count($files_array);
$this->total_files = $total_f;
}
public function getStat() {
$this->getTotalLines($this->buildFileList());
echo "Start path: ".realpath($this->start_path)."<br>\n";
echo "Total: {$this->total_lines} lines in {$this->total_files} files";
}
}
[
/php]
Применяем следующим образом:
посчитать кол-во файлов и строк в текущем и вложеных каталогах с глубиной прониктовения 10 и по маске файла "*.php":
[php]
$counter = new LineCounter("./", 10, '*.php');
$counter->getStat();
[
/php]
Обсудить в ФОРУМе - комментариев (4)
Путь: Шпаргалки
Если вы заметили орфографическую, стилистическую или другую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
|
|