七行プログラミング (452レス)
七行プログラミング http://medaka.5ch.net/test/read.cgi/php/1036141603/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
170: 7blosxom [] 03/12/01 03:01 ID:i/vnv4B8 #!/usr/bin/perl use CGI':all';use File::Find;$n=param('n')||0;@i=split'/',path_info;shift@i;($y, $m,$d)=grep{/^\d+$/}@i;$p=join'/',grep{/^\D+$/}@i;find sub{($f=$File::Find::name )=~/\.txt$/and$e{$f}=-M},"./$p";put header,start_html;for((sort{$e{$a}<=>$e{$b}} keys%e)[$n..$n+40]){($z,$x,$c)=(localtime(time-60*60*24*$e{$_}))[5,4,3];next if( ($y&&$y!=$z+1900)or($m&&$m!=$x+1)or($d&&$d!=$c)or!-f);s/^\.\///;open(F,$_)&&{ chomp($t=<F>),put(a({-href=>url."/$_"},h2 $t),<F>,hr,"\n"),close F}}put end_html http://medaka.5ch.net/test/read.cgi/php/1036141603/170
171: 7blosxom [] 03/12/01 03:13 ID:i/vnv4B8 久しぶりに7行プログラミング。 PATH_INFOで指定できるのは、日付とカテゴリのみ。 月の指定は数字のみ可能。Decとかには未対応。 indexや他のFlavourは未実装。 リクエストの例 ./7blosxom.cgi ./7blosxom.cgi/2003 ./7blosxom.cgi/2003/11 ./7blosxom.cgi/2003/11/30 ./7blosxom.cgi/2003/11/foo ./7blosxom.cgi/2003/foo/bar ./7blosxom.cgi/foo/hoge.txt PAGING 機能。意味なくつけてみたけど、いらないよぉな気がする。(TODO remove) ./7blosxom.cgi?n=10 ./7blosxom.cgi?n=10/foo/2000 リクエスト例。例外 ./7blosxom.cgi///// ... 何も指定しないのと同じ。 ./7blosxom.cgi/2003/11/30/1/ ... 4つめ以降の数字は無視される。 ./7blosxom.cgi/foo2/ ... 正規表現が手抜きな為、数字+文字の組合せは無視される。 http://medaka.5ch.net/test/read.cgi/php/1036141603/171
172: nobodyさん [] 03/12/01 06:28 ID:i/vnv4B8 訂正。HTML&&桁数間違えてた。 #!/usr/bin/perl use CGI':all';use File::Find;@i=split'/',path_info;shift@i;($y,$m,$d)=grep/^\d+ $/x,@i;$p=join'/',grep{/^\D+$/}@i;find sub{($f=$File::Find::name)=~/\.txt$/and$ e{$f}=-M},"./$p";put header,start_html;for(sort{$e{$a}<=>$e{$b}}keys%e){($z,$x, $c)=(localtime(time-86400*$e{$_}))[5,4,3];if(!(($y&&$y!=$z+1900)or($m&&$m!=$x+1 )or($d&&$d!=$c))&&-f&&open F,$_){s/^\.\///;chomp($t=<F>);put hr,h2 a({href,url. "/$_"},$t),pre<F>,"\n";close F}}put end_html - データ用のディレクトリをカレントディレクトリ以外に指定したい場合。 ln -s /home/your/data/path home とリンクを作り。 7blosxom.cgi/home とアクセスする。 http://medaka.5ch.net/test/read.cgi/php/1036141603/172
175: nobodyさん [] 03/12/01 23:22 ID:i/vnv4B8 #!/usr/bin/perl #7blosxom.cgi use CGI':all';use File::Find;($p,$y,$m,$d)=grep/^\D+$/,(@i=split'/',path_info), grep/^\d+$/,@i;find sub{($f=$File::Find::name)=~/\.txt$/and $e{$f}=-M},"./$p"; put header,start_html;for(sort{$e{$a}<=>$e{$b}}keys%e){($c,$x,$z)=(localtime( time-86400*$e{$_}))[3..5];if(!($y&&$y!=$z+1900||$m&&$m!=$x+1||$d&&$d!=$c)&&-f&& open F,$_){s/^\.\///;chomp($t=<F>);put h2 a({href=>url."/$_"},$t),pre<F>,hr; close F}}put end_html __END__ 変更点 < shift@i はいらなかった。 < [5,4,3] をスライスに変更。 < 変数をまとめて宣言。 >174 そうだね。過去ログを読めばわかる通り、それは人によって意見がわかれる所。標準モジュールはokとか。 自分は、モジュールを使っても既存のリソースの有り合わせでおもしろいものが出来ればいいなと思ってる。 wikiもCPANのWiki::関連のモジュールを使えば制限内でも、もっと機能追加出来そうだし。 ただし、短くするためにわざわざモジュールを作る気はなし。 http://medaka.5ch.net/test/read.cgi/php/1036141603/175
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s