Here's a short function to count code in a directory (recursively scans all subdirectories).
<?php
function countCode ($directory, $skip_blank = false) {
if (substr($directory, -1, 1) == '/') {
$directory = substr($directory, 0, strlen($directory) - 1);
}
// recursively scan directory and retrieve files
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != '..' && $file != '.') {
if (preg_match('|\.php$|i', $file) && is_file($directory. '/' .$file)) {
if (!$skip_blank) {
$line_count = count(file($directory. '/' .$file));
} else {
$line_count = count(file($directory. '/' .$file,
FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES));
}
$lines += $line_count;
} elseif (is_dir($directory. '/' .$file)) {
$lines += countCode($directory. '/' .$file, $skip_blank);
}
}
}
return $lines;
}
}
echo 'Code in this directory: ', countCode('/var/www/', false);
?>
Comments (0)
Commenting has been disabled for this entry
If you'd like to discuss an aspect of this post, feel free to contact me via email.