PHP – Как подсчитать строки кода в приложении

Мне нужно подсчитать количество строк кода в моем приложении (в PHP, а не в командной строке), и поскольку фрагменты в Интернете не помогли слишком много, я решил спросить здесь. Спасибо за любой ответ!

РЕДАКТИРОВАТЬ

На самом деле, мне понадобится весь фрагмент для сканирования и подсчета строк в заданной папке. Я использую этот метод в CakePHP, поэтому буду благодарен за полную интеграцию.

Solutions Collecting From Web of "PHP – Как подсчитать строки кода в приложении"

Чтобы сделать это над каталогом, я бы использовал итератор.

function countLines($path, $extensions = array('php')) { $it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($path) ); $files = array(); foreach ($it as $file) { if ($file->isDir() || $file->isDot()) { continue; } $parts = explode('.', $file->getFilename()); $extension = end($parts); if (in_array($extension, $extensions)) { $files[$file->getPathname()] = count(file($file->getPathname())); } } return $files; } 

Это вернет массив с каждым файлом в качестве ключа и количеством строк в качестве значения. Затем, если вы хотите только общее количество, просто выполните array_sum(countLines($path));

Вы можете использовать функцию file для чтения файла, а затем count :

 $c = count(file('filename.php')); 

Используя код ircmaxell, я сделал из него простой класс, он отлично работает для меня сейчас

 <?php class Line_Counter { private $filepath; private $files = array(); public function __construct($filepath) { $this->filepath = $filepath; } public function countLines($extensions = array('php')) { $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->filepath)); foreach ($it as $file) { // if ($file->isDir() || $file->isDot()) if ($file->isDir() ) { continue; } $parts = explode('.', $file->getFilename()); $extension = end($parts); if (in_array($extension, $extensions)) { $files[$file->getPathname()] = count(file($file->getPathname())); } } return $files; } public function showLines() { echo '<pre>'; print_r($this->countLines()); echo '</pre>'; } public function totalLines() { return array_sum($this->countLines()); } } // Get all files with line count for each into an array $loc = new Line_Counter('E:\Server\htdocs\myframework'); $loc->showLines(); echo '<br><br> Total Lines of code: '; echo $loc->totalLines(); ?> 
 $ fp = "file.php";
 $ lines = file ($ fp);
 количество эхо ($ линий);

PHP Classes имеет хороший класс для подсчета строк для php-файлов в каталоге:

http://www.phpclasses.org/package/1091-PHP-Calculates-the-total-lines-of-code-in-a-directory.html

Вы можете указать типы файлов, которые хотите проверить в верхней части класса.

немного грязный, но вы также можете использовать system / exec / passthru wc -l *