Sep
18
2010
Подсчёт числа строк в программном проекте

Функция предназначена для подсчёта числа строк в программных проектах, состоящих из множества вложенных директорий. Конечно, число строк не может свидетельствовать в полной мере о затраченных усилиях и времени на программный проект, но является важным показателем в оценке сложности проекта.

Код рекурсивной фукнции scan_dir, которая обходит директории


<?php

  
////////////////////////////////////////////////////////// 

  // Рекурсивная функция - спускаемся вниз по каталогу 

  ////////////////////////////////////////////////////////// 

  
function scan_dir($dirname

  { 

    
// Объявляем переменные замены глобальными

    
GLOBAL $extentions$count;

    
// Открываем текущую директорию 

    
$dir opendir($dirname); 

    
// Читаем в цикле директорию 

    
while (($file readdir($dir)) !== false

    { 

      
// Если файл обрабатываем его содержимое 

      
if($file != "." && $file != ".."

      { 

        
// Если имеем дело с файлом - производим в нём замену

        
if(is_file($dirname."/".$file)) 

        { 

          
// Извлекаем из имени файла расширение

          
$ext strrchr($dirname."/".$file"."); 

          foreach(
$extentions as $exten)

          if(
preg_match($exten$ext))

          {

            
// Читаем содержимое файла

            
$content file($dirname."/".$file); 

            
// Подсчтываем число файлов

            
$count += count($content);

            
// Удаляем массив

            
unset($content);

          }

        } 

        
// Если перед нами директория, вызываем рекурсивно 

        // функцию scan_dir 

        
if(is_dir($dirname."/".$file)) 

        { 

          
scan_dir($dirname."/".$file); 

        } 

      } 

    } 

    
// Закрываем директорию 

    
closedir($dir); 

  } 

?>


Воспользоваться результатами можно при помощи следующего кода

Код вызова функции scan_dir()


<?php

  
// Имя корневой директории проекта

  
$dirname "softtime"

  
// Массив с расширениями файлов, для которых следует подсчитывать

  // число строк

  
$extentions = array("#\.php#i"); 

  
// $extentions = array("#\.cpp#i","#\.h#i");

  // Счётчик строк - глобальная переменная

  
$count 0;

  
// Вызов функции, осуществляющей рекурсивный спуск по подкаталогам

  // корневого каталога

  
scan_dir($dirname);

  
// Записываем число строк в переменную $count

  
file_put_contents("test",$count);

?>


 

Комментарии
Добавить новый Поиск
Оставить комментарий
Имя:
Email:
 
Веб-сайт:
Тема:
UBB-Код:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Пожалуйста, введите проверочный код, который Вы видите на картинке.
Powered by !JoomlaComment 3.26

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Кто онлайн

Сейчас 55 гостей онлайн