脆弱星ありそうなコードだがそれはおいといて
function find_file($command) { echo "<PRE>"; foreach (split("\n",shell_exec('find . \! -type d \! -name .\*' . ' ' . $command . ' ' . '-print')) as $find) { status_print($find); } echo "</PRE>"; } ; function status_print($find) { if(!$find) continue; echo " MD5:"; echo md5_file($find); echo " "; echo shell_exec('find ' . $find . ' -printf %t'); echo " "; if( ereg( TRHTML , $find ) ) echo "<A Href='?html=$find'>$find</A>"; else echo "<A Href='$find'>$find</A>"; echo "\n"; }
と
function find_file($command) { echo "<PRE>"; foreach (split("\n",shell_exec('find . \! -type d \! -name .\*' . ' ' . $command . ' ' . '-print')) as $find) { if(!$find) continue; status_print($find); } echo "</PRE>"; } ; function status_print($find) { echo " MD5:"; echo md5_file($find); echo " "; echo shell_exec('find ' . $find . ' -printf %t'); echo " "; if( ereg( TRHTML , $find ) ) echo "<A Href='?html=$find'>$find</A>"; else echo "<A Href='$find'>$find</A>"; echo "\n"; }
どっちがよいと思う?
以下のコードの方が、デバッグに再利用できる(可能性)
$findが''出会ったときでも表示する(関数名がprintを含むため関数呼んだのにエラーとして表示されないということは避けられる)
前者のstatus_print('')の出力はなし
後者のstatus_print('')の出力は「MD5: Sat Dec 16 17:44:10 2006Wed Dec 13 15:24:57 2006Wed Dec 13 15:24:55 2006Wed Dec 13 15:24:55 2006Wed Dec 13 15:24:54 2006Wed Dec 13 15:24:55 2006Wed Dec 13 15:24:54 2006Wed Dec 13 15:24:54 2006Wed Dec 13 15:24:55 2006Wed Dec 13 15:24:56 2006Wed Dec 13 15:24:56 2006Wed Dec 13 15:24:54 2006Wed Dec 13 15:24:54 2006Wed Dec 13 15:24:57 2006Wed Dec 13 15:25:13 2006Wed Dec 13 15:24:59 2006Wed Dec 13 15:24:58 2006Wed Dec 13 15:24:58 2006Wed Dec 13 15:24:58 2006Wed Dec 13 15:24:59 2006Wed Dec 13 15:24:59 2006Wed Dec 13 15:24:59 2006Wed Dec 13 15:24:59 2006Wed Dec 13 15.....」
デザインに五月蠅いところなら前者の方が仕事ししては良い鴨(藁
$findが''であってもとりあえずセーフ(ただし、status_printの拡張でshell呼ぶのでハァハァできるかも)
% find -printf %t
find: unknown option -- p
find: unknown option -- r
find: unknown option -- i
find: unknown option -- n
find: unknown option -- t
find: %t: No such file or directory
個人的には後者のほうが好きなんだが...
そもそも、find_fileのsplitで空の$findが来ないようにするべきなんだが...