Skrypt umożliwia przeszukanie danego katalogu pod kątem plików o danym rozszerzeniu.
Skrypt zlicza ile linii kodu ma każdy z plików o danym rozszerzeniu, a następnie przedstawia informację o każdym z plików oraz sumuje liczbę linii kodu i podaje ją.
Skrypt napisałem by móc sobie sprawdzić ile linii kodu zaprogramowałem tworząc swój serwis.
<?php
/*
<<< Licznik linii kodu w plikach o danym rozszerzeniu >>>
2008 Copyright by Artur (RudeDude)
### Wersja: 1.00 / 06.12.2008r.
### Moje Serwisy (Kontakt):
www.webook.pl
www.CPG.superhost.pl
www.Eurolol.pl
### Licencja GNU
<a href=\"http://gnu.org.pl/text/licencja-gnu.html\" target=\"_blank\">http://gnu.org.pl/text/licencja-gnu.html</a>
### Jak uruchomić skrypt?
1. Umieść ten plik w katalogu nadrzędnym w stosunku do katalogu który ma zostać przeszukany
2. Podaj w zmiennej $nazwa_katalogu nazwe katalogu ktory bedzie przeszukany
3. Podaj w $nazwa_katalogu nazwe rozszerzenia plikow ktorych linie kodu maja byc zliczone
### Wskazówka:
Jeśli katalog który będzie przeszukiwany zawiera dużo plików skrypt może wykonywać się ponad 30 sekund,
w takim wypadku może zostać zatrzymany przez serwer.
Zmien sobie w pliku php.ini w linii
max_execution_time = 30;
czas 30 sekund na więcej aby skrypt mógł się wykonać do końca.
Zalecam korzystanie ze skryptu na localhost'cie, w końcu to tylko Ciebie interesuje ile linii kodu zaprogramowałeś :)
Nie ma sensu obciążać skryptem serwera hostingowego, no chyba że nie masz na localu plików swojej witryny
*/
$nazwa_katalogu = 'katalog'; // podaj nazwe katalogu w ktorym maja zostac przeszukane pliki o danym rozszerzeniu i zliczone ich linie kodu
$nazwa_rozszerzenia = 'php'; // podaj rozszerzenie plikow ktore maja byc sprawdzone pod kątem liczby linii kodu
# start skryptu ---------------------------------------------------------------------------------
licznik_linii($nazwa_katalogu.'/');
$all_files = $liczba_plikow_liczonych+$liczba_plikow_pominietych;
echo '<hr>Pominiete pliki:<br /> '.$pominiete_pliki; echo '<hr> Pliki '.$nazwa_rozszerzenia.' maja lacznie linii kodu: <b>'.$linii_all.'</b>'; echo ' / Plików '.$nazwa_rozszerzenia.': '.$liczba_plikow_liczonych.' / Plików pominietych: '.$liczba_plikow_pominietych.' / Wszystkich plików: '.$all_files;
#-------------------------------------------------------------------------------------------------
function licznik_linii($katalog) {
global $linii_all, $pominiete_pliki, $liczba_plikow_liczonych, $liczba_plikow_pominietych, $nazwa_rozszerzenia;
$dir = new DirectoryIterator($katalog);
while($dir->valid()) {
if(!$dir->isDot()) {
$nazwa_pliku = $katalog.$dir->current();
$nazwa_katalogu = $nazwa_pliku.'/';
if(is_dir($nazwa_katalogu)) { // jesli jest katalogiem to otwórz i czytaj linie w plikach w nim zawartych licznik_linii($nazwa_katalogu);
} else {
// sprawdzenie czy plik ma dane rozeszezenie
$spr_php = strstr($nazwa_pliku, '.'.$nazwa_rozszerzenia);
if($spr_php == '.'.$nazwa_rozszerzenia) {
echo '<b>sciezka:</b> '.$nazwa_pliku.'<br />';
echo 'linii w pliku: '.$liczba_linii.'<br /><br />'; $linii += $liczba_linii;
$linii_all = $linii;
$liczba_plikow_liczonych++;
} else {
$pominiete_pliki .= '<b>sciezka:</b> '.$nazwa_pliku.'<br />';
$liczba_plikow_pominietych++;
}
}
}
$dir->next();
}
}
?>