counting project

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
function rdir ($path2dir) {
$d = dir ($path2dir);
while (false !== ($entry = $d->read())) {
if ($entry!='.' && $entry!='..' && $entry!='' ) {
$all_path = $path2dir.'/'.$entry;
$new_path = go ($all_path, is_file($all_path));
if (!is_file($all_path)) {
if (!rdir ($new_path)) {
return false;
}
}
}
}
return true;
}
function go ($path2file, $is_file = true) {
global $lines, $chars;
if ($is_file) {
# выполняем операцию над файлом
# выведем относительный путь к обрабатываемому файлу
$ext = end(explode('.', end(explode('/', $path2file))));
if($ext == 'php' or $ext == 'css' or $ext == 'html' or $ext == 'js' or $ext == 'htaccess') {
$file = file($path2file);
$lines += count($file);
foreach($file as $string) {
$chars += strlen($string);
}
}
}
return $path2file;
}
# начинаем с текущей папки
$folder = 'D:\OpenServer\domains\mkey.ru';
$lines = 0; $chars = 0;
# непосредственно вызываем функцию
if (rdir ($folder)) {
echo 'Lines: ' . $lines;
echo '<br/>';
echo 'Chars: ' . $chars;
}
?>