24時間以内に書いたphpコードの行数を調べるスクリプト
<?php $now = time(); $interval = 60*60*24; $lineNum = 0; @$dir = opendir("c:\practice\php") or exit("cannot open directory"); while($f = readdir($dir)){ if($f == '.' || $f == '..') continue; $stat = stat($f); if(($now - $stat[9]) < $interval){ $lines = @file($f) or exit("cannot open file.\n"); $lineNum = count($lines) + $lineNum; } } echo $lineNum."\n"; closedir($dir); ?>
opendirでディレクトリハンドルを取得し、whileで回しながらstat関数でファイルの最終修正時間を取得。24時間以内に修正されたファイルであるかどうかを判定し、そうであれば行数を足していく、という処理になっています。
問題点として、
1.phpファイルの行数を調べると謳っていながら、実際にはphpファイルであるかどうかの判定をしていない。
2.c:\practice\phpというディレクトリしか見ていないので、他のディレクトリにコードを書いても勘定されない。
3.いまはc:\practice\phpにディレクトリが存在しないが、作った場合、たぶんまともに動かない。
4.修正しただけで数に入れてしまうので、正確な行数とは言えない場合がある。
5.そもそも?phpとか?を1行にカウントしていいの?
など、問題点が山積みですが、とりあえず今日の成果としてアップしておきます。ちなみに私が24時間以内に書いたphpの行数は34でした。少なッ!