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

Автор: content Воскресенье, Апрель 8th, 2012 Нет комментариев

Рубрика: Язык PHP

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

Код рекурсивной фукнции 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);
?> 

Автор: IT-студия SoftTime (softtime.ru)

Источник: http://www.php.su/articles/?cat=examples&page=059

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты