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

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

 

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

?>




Рекомендуем почитать

 

Добавить комментарий


Ваше имя:


Комментарий:


Введите: Картинка