Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Не получили
письмо с кодом активации
?
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Начало
Помощь
Поиск
Календарь
Вход
Регистрация
Forum Webscript.Ru
»
Программирование
»
PHP
»
Подсчитаем...
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
Вниз
Автор
Тема: Подсчитаем... (Прочитано 3482 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Dolce0109
Завсегдатай
Новичок
Сообщений: 36
+0/-0
0
Подсчитаем...
«
:
30 Марта 2002, 03:35:25 »
Народ, вот есть у меня проект, на PHP ест-но... большуший, штук 100 файлов, куча поддирикторий, и тут в голову взбрело подсчитать сколько всего у меня строк кода... самому писать такой скрипт сейчас лень, может есть у кого уже?
Записан
--==(-_-)==--
____DOLCE____
Dolce0109
Завсегдатай
Новичок
Сообщений: 36
+0/-0
0
Рекурсивный подсчет общего количества строк кода
«
Ответ #1 :
30 Марта 2002, 04:38:20 »
Отвечать уже не надо, сам написал на досуге... вот файлик. Кладем в любую дир, запускаем, и узнаём скока строк занимает наш проект
<?
<?
/******
* Считалка - Экспериментальный проект!
*
* Данный файл, при запуске из какой-либо дириктории выведет на
* экран броузера общее кол-ко PHP кода во всех файлах в этой
* дириктории и во всех поддирикториях!
*
* Автор: А. Куликов aka Dolce -- [email]alex@koulikov.cc[/email]
* Версия: 1.0
* Дата: 30.03.2002
***************/
/**
* _readDir() - считывает список всех поддирикторий, начиная от
*
заданного пути.
*
* @param $path
* @return (array)
*/
function
_readDir
(
$path
=
""
){
//echo "OPENING PATH :: " . $path . "
";
$dir_tree
= array();
$d
= dir(
$path
);
while(
$entry
=
$d
->
read
()){
if(!stristr(
$entry
,\'.\')){
$dir_tree
[
$entry
]
=
$entry
;
}
}
unset(
$dir_tree
[
\'templates\']);
$d
->
close
();
return
$dir_tree
;
}
/**
* _readPHP() - считывает список всех PHP файлов из дириктории, заданой
*
в параметре
$path
*
* @param
$path
* @return (array)
*/
function _readPHP(
$path
=""){
$dir_tree
= array();
$d
= dir(
$path
);
while(@
$entry
=
$d
->
read
()){
if(eregi("
.
php
$
",
$entry
)){
array_push(
$dir_tree
,
$entry
);
}
}
@
$d
->
close
();
return
$dir_tree
;
}
/**
* _readAll() - давайте мыслить рекурсивно!
*
* @param
$path
* @return (int)
*/
function _readAll(
$path
=""){
if(is_dir(
$path
)){
$initial
= _readDir(
$path
);
}
//are there subdirs?
if(count(
$initial
)>0){
while(list(
$key
,
$val
)=each(
$initial
)){
if(strlen(
$path
)>0){
$mypath
=
$path
. "
/
" .
$val
;
}else{
$mypath
=
$val
;
}
$overall
=
$overall
+ _readAll(
$mypath
);
//echo
$mypath
. "
";
}
}
//read files
if(is_dir(
$path
)){
$files
= _readPHP(
$path
);
}else{
$files
= array();
}
while(list(
$key
,
$val
)=each(
$files
)){
//open each file and check how many lines of code it has
if(strlen(
$path
)>0){
$mypath
=
$path
. "
/
" .
$val
;
}else{
$mypath
=
$val
;
}
$file
= fopen(
$mypath
, "
r
");
$rf
= fread(
$file
, 20000);
$temp
= explode("
\\
n
",
$rf
);
$tot
= count(
$temp
);
//echo "
--
" .
$val
. "
:
lines
" .
$tot
. "
";
$overall
=
$overall
+
$tot
;
fclose(
$file
);
}
//echo "
<
b
>
TOT
: </
b
>
" .
$overall
;
return
$overall
;
}
/**
* startTiming() - to start the timer for script execution
*
* @return void
*
* Version: 1.0 Date: 13.01.2002 Author: Koulikov Alexey
*/
function startTiming(){
global
$startTime
;
$microtime
= microtime();
$microsecs
= substr(
$microtime
, 2, 8);
$secs
= substr(
$microtime
, 11);
$startTime
= "
$secs
.
$microsecs
";
}
/**
* stopTiming() - to stop the timer for script execution
*
* @return end time - float
*
* Version: 1.0 Date: 13.01.2002 Author: Koulikov Alexey
*/
function stopTiming(){
global
$startTime
;
$microtime
= microtime();
$microsecs
= substr(
$microtime
, 2, 8);
$secs
= substr(
$microtime
, 11);
$endTime
= "
$secs
.
$microsecs
";
$tottime
= round((
$endTime
-
$startTime
),4);
return
$tottime
;
}
//Запустим секундомер
startTiming();
$total
= _readAll();
switch (
$total
){
case (
$total
< 2500):
{
$status
= \
'Малютка\'; break;}
case ($total < 5000):{$status = \'Малышь\'; break;}
case ($total < 7500):{$status = \'Почти Середнячок\'; break;}
case ($total < 10000):{$status = \'Середнячок\'; break;}
case ($total < 20000):{$status = \'Крупнячок\'; break;}
case ($total < 30000):{$status = \'Здоровяк\'; break;}
case ($total < 40000):{$status = \'Гигант\'; break;}
default:{$status = \'Супер Гигант\'; break;}
}
echo "Всего вы (а может и не вы) написали <b>" . $total . "</b> строчек кода!
";
echo "По объективным оценкам, <b>ваш проект - " . $status . "</b>
";
echo "Этот подсчёт занял: " . stopTiming() . " секунд!";
?>
«
Последнее редактирование: 30 Марта 2002, 05:31:21 от Dolce0109
»
Записан
--==(-_-)==--
____DOLCE____
Dolce0109
Завсегдатай
Новичок
Сообщений: 36
+0/-0
0
Рекурсивный подсчет общего количества строк кода
«
Ответ #2 :
30 Марта 2002, 05:31:33 »
ГГГ... у меня на локальном сервере 136 908 строк кода! гг
Записан
--==(-_-)==--
____DOLCE____
Dm
Модератор
Глобальный модератор
Ветеран
Сообщений: 1263
+0/-0
0
Рекурсивный подсчет общего количества строк кода
«
Ответ #3 :
30 Марта 2002, 05:50:02 »
Dolce0109
поздравляю!
ps. давайте не будем флеймить?
Записан
с уважением,
магистр белой магии.
Печать
Страницы: [
1
]
Вверх
« предыдущая тема
следующая тема »
Forum Webscript.Ru
»
Программирование
»
PHP
»
Подсчитаем...
Sitemap
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