七行プログラミング (452レス)
上下前次1-新
180(1): nobodyさん [sage] 03/12/03 02:02 ID:??? AAS
 5.005_03 と 5.8.2 で確認。元より長くなったけど…。 
  
 #!/usr/bin/perl 
 use CGI':all';use File::Find;/^\d+$/?$y?$m?($d||=$_):($m=$_-1):($y=$_-1900):/\. 
 txt$/x?($f||=$_):length&&($c.="/$_")for split'/',path_info;find sub{($D,$M,$Y)= 
 (localtime($t=(stat)[9]))[3..5];$e{$File::Find::name}=$t if!($y&&$y-$Y)&&!($m&& 
 $m-$M)&&!($d&&$d-$D)&&(!$f||/^$f$/)&&/\.txt$/},".$c";put header,start_html;for( 
 sort{$e{$b}<=>$e{$a}}keys%e){open F,$_;s|\.||;chomp($h=<F>);put h2(a{href,url. 
 $_},$h),pre<Fhr}put end_html 
  
 ・数字は年・月・日としてこの順に拾われ、4つ目以降は無視 
 ・数字のみのカテゴリ名は許されないが、含む事は可 
 ・カテゴリは出現順に階層化されているものとして処理する 
 ・".txt" が末尾に付くものはファイルとし、最初に現れたもののみ有効 
  
 例 
 ./7blosxom.cgi 
 ./7blosxom.cgi/2003 
 ./7blosxom.cgi/2003/11 
 ./7blosxom.cgi/2003/11/30 
 ./7blosxom.cgi/foo 
 ./7blosxom.cgi/hoge.txt 
 ./7blosxom.cgi/foo/hoge.txt 
 ./7blosxom.cgi/2003/foo/bar 
 ./7blosxom.cgi/2003/foo/11/bar/30/fuga.txt 
 ./7blosxom.cgi/fuga.txt/2003/////foo1/11////bar2/30 
181: nobodyさん [sage] 03/12/03 02:13 ID:??? AAS
 >>180 
 1月ダメじゃん…。 
  
 :($m=$_-1): => :($m=$_): 
 !($m&&$m-$M) => !($m&&$m-$M-1) 
182(4): nobodyさん [] 03/12/03 06:43 ID:4m1BwtbU(1) AAS
 >175175(5): nobodyさん [] 03/12/01 23:22 ID:i/vnv4B8(4/4) AAS
 #!/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<Fhr; 
 close F}}put end_html 
 __END__ 
  
 変更点 
 < shift@i はいらなかった。 
 < [5,4,3] をスライスに変更。 
 < 変数をまとめて宣言。 
  
 >174 
 そうだね。過去ログを読めばわかる通り、それは人によって意見がわかれる所。標準モジュールはokとか。 
 自分は、モジュールを使っても既存のリソースの有り合わせでおもしろいものが出来ればいいなと思ってる。 
 wikiもCPANのWiki::関連のモジュールを使えば制限内でも、もっと機能追加出来そうだし。 
 ただし、短くするためにわざわざモジュールを作る気はなし。 
 $p の指定に不具合あり。join忘れてた。 
  
 use CGI':all';use File::Find;$P=join'/',grep/^\D\w*$/,(@i=split'/',path_info);( 
 $Y,$M,$D)=grep/^\d+$/,@i;find sub{($d,$m,$y)=(localtime($t=(stat)[9]))[3..5];!( 
 !($Y&&$Y-$y-1900)&&!($M&&$M-$m-1)&&!($D&&$D-$d)&&/\.txt/&&(!$i[-1]||/^$i[-1]$/) 
 )or$e{$File::Find::name}=$t},"./$P";put header,start_html;for(sort{$e{$b}<=>$e{ 
 $a}}keys%e){open F,$_;s/^\.//;chomp($h=<F>);put h2(a{href,url.$_},$h),pre<Fhr 
 ;close F}put end_html; 
  
 若干仕様変更。 
 - カテゴリ名は /^\D\w*$/ 
 - ファイルの指定は、PATH_INFO の末尾のみ有効。 
 - findの対象はカレントディレクトリ以下のみ。(絶対パス指定できるのは、流石にちょっと 
  
 BTW,ファイルハンドルってスコープ抜けたら勝手にcloseされるんだっけ?perlって。 
183: nobodyさん [sage] 03/12/03 07:46 ID:??? AAS
 >182 
 テスト不十分だった。訂正 
 > $i[-1]!~/\.txt$/||/^$i[-1]$/
184: 7thread [sage] 03/12/03 09:43 ID:??? AAS
 use CGI":all";*i=*param;*x=*textfield;sub e{escapeHTML i pop}sub l{a{href,pop}, 
 pop}chdir G;-e($b=i(B)||e S)||open F,">$b";open F,"+<$b";eval{flock F,2};[<F>]; 
 s!\w+外部リンク:.+$!l$&,$&!eg,s/\n/br/eg,print F dt($.+1,':'.b(l e(N)||nobody,'mailto:' 
 .e M),':'.localtime),dd($_),"\n"if$_=e T;seek F,0,0;put header,start_html($b), 
 startform,$b?h1($b).dl(<F>).hidden(B,$b).l list,'?':ol(li[map{l$_,"?B=$_"}sort{ 
 -M$a<=>-M$b}<*>]).thread.x(S),br,submit,NAME,x(N),MAIL,x(M),br,textarea(T,'',6, 
 80,1),endform,end_html 
185(1): nobodyさん [sage] 03/12/03 20:55 ID:??? AAS
 7thread.cgi l10n for Japanese :) 
  
 #!/usr/local/bin/perl 
 use CGI":all";*i=*param;*x=*textfield;sub e{escapeHTML i pop}sub l{a{href,pop}, 
 pop}chdir G;-e($b=i(B)||e S)||open F,">$b";open F,"+<$b";eval{flock F,2};[<F>]; 
 s!\w+外部リンク:.+$!l$&,$&!eg,s/\n/br/eg,print F dt($.+1,':'.b(l e(N)||'ナナシ','mailto:'. 
 e M),':'.localtime),dd($_),"\n"if$_=e T;seek F,0,0;put header(-charset=>$c= 
 Shift_JIS),start_html(-title=>$b||$0,encoding,$c,lang,ja),startform,$b?h1($b). 
 dl(<F>).hidden(B,$b).l 'スレ','?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).'ス 
 レ'.x(S),br,submit,Name,x(N),Mail,x(M),br,textarea(T,'',6,80,1),endform,end_html 
  
 >>182 
 検証方法が思いつかず…。>スコープ抜けで close 
186(4): nobodyさん [sage] 03/12/03 23:13 ID:??? AAS
 7blosxom.cgi l10n for Japanese 
 start_html に -title=>$0 入れると7行に収まらなかった(苦)。 
  
 #!/usr/bin/perl 
 use CGI':all';use File::Find;($Y,$M,$D)=grep/^\d+$/,@i=path_info=~m|/([^/]+)|g; 
 $R=$i[-1]=~/\.txt$/?pop@i:'\.txt';find sub{($d,$m,$y)=(localtime($t=(stat)[9])) 
 [3..5];$e{$File::Find::name}=$t if!($Y&&$Y-$y-1900)&!($M&&$M-$m-1)&!($D&&$D-$d) 
 &/$R$/},$P=join('/','.',grep!/\.\.|^\d+$/,@i);put header(-charset=>$c='EUC-JP') 
 ,start_html(-encoding=>$c,lang,ja);for(sort{$e{$b}<=>$e{$a}}keys%e){open F,$_; 
 s/^\.//;chomp($h=<F>);put h2(a{href,url.$_},$h),pre<Fhr}put end_html 
  
 >>182 
 '..' さえ防いだら大丈夫な気も… 
 既に開かれてるファイルハンドルを open し直すと、開いていたファイルは 
 close されてから新しいファイルを open するので、close は明示しなくても 
 可な筈。 
 外部リンク[html]:perldoc.com 
187: nobodyさん [sage] 03/12/03 23:57 ID:??? AAS
 >>186 
 ちと修正。 
  
 #!/usr/bin/perl 
 use CGI':all';use File::Find;($Y,$M,$D)=grep/^\d+$/,@i=path_info=~m|/([^/]+)|g; 
 $R=$i[-1]=~/\.txt$/?pop@i:'.txt';find sub{($d,$m,$y)=(localtime($t=(stat)[9]))[ 
 3..5];$e{$File::Find::name}=$t if!($Y&&$Y-$y-1900)&!($M&&$M-$m-1)&!($D&&$D-$d)& 
 /\Q$R\E$/},join'/','.',grep!/\.\.|^\d+$/,@i;put header(-charset=>$c='EUC-JP'), 
 start_html(-encoding=>$c,lang,ja);for(sort{$e{$b}<=>$e{$a}}keys%e){open F,$_; 
 s/^\.//;chomp($h=<F>);put h2(a{href,url.$_},$h),pre<Fhr}put end_html 
188: nobodyさん [sage] 03/12/04 01:07 ID:??? AAS
 なにこのすれ(;´Д`) 
189(1): 128 [] 03/12/04 03:24 ID:h3ZU5uFM(1/2) AAS
 皆、お疲れ〜。 
 元気っぽいですな。 
  
 >>185 
 7thread 修正どうもです。かなりいけてました。 
 charset()を使わないと、escapeHTMLで文字化けが起こりますね。(「機能」とか) 
 EUCにしようかとも思ったんだけど。 
  
 #!/usr/local/bin/perl 
 use CGI":all";charset$c=Shift_JIS;*i=*param;*x=*textfield;sub l{a{href,pop},pop 
 }sub e{escapeHTML i pop}chdir G;$b=e(B)||e S;open F,"+>>$b";flock F,2;[<F>];$t= 
 'スレッド';s!\w+外部リンク:.+$!l$&,$&!emg,s/\n/br/eg,print F dt($.+1,':'.b(l e(N)||'七氏', 
 'mailto:'.e M),':'.gmtime),dd($_),"\n"if$_=e T;seek F,0,0;put header,start_html 
 (-title=>$b||$t,encoding,$c,lang,ja,style,[<DATA>]),startform,h1($b||$t),$b?dl( 
 <F>).hidden(B,$b).l $t,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).$t.x(S) 
 ,br,submit,Name,x(N),Mail,x(M),br,textarea(T,'',7,80,1),endform,end_html
190: 128 [] 03/12/04 03:32 ID:h3ZU5uFM(2/2) AAS
 オオボケでした。 
 開発中のを送ってしまった。 
  
 こっちです。 
  
 use CGI":all";charset$c=Shift_JIS;*i=*param;*x=*textfield;sub l{a{href,pop},pop 
 }sub e{escapeHTML i pop}chdir G;$b=e(B)||e S;open F,"+>>$b";flock F,2;[<F>];$t= 
 'スレッド';s!\w+外部リンク:.+$!l$&,$&!emg,s/\n/br/eg,print F dt($.+1,':'.b(l e(N)||'七氏', 
 'mailto:'.e M),':'.gmtime),dd($_),"\n"if$_=e T;seek F,0,0;put header,start_html 
 (-title=>$b||$t,encoding,$c,lang,ja),startform,h1($b||$t),$b?dl(<F>).hidden(B, 
 $b).l $t,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).$t.x(S),br,submit, 
 Name,x(N),Mail,x(M),br,textarea(T,'',7,80,1),endform,end_html 
191: nobodyさん [sage] 03/12/04 06:04 ID:??? AAS
 >>189 
 > charset()を使わないと、escapeHTMLで文字化け 
 あぁ、確かに ad hoc な事やってますな…。相変わらず CGI.pm はダサい。:< 
  
 #!/usr/bin/perl 
 use CGI":all";charset$c=Shift_JIS;*i=*param;*x=*textfield;sub l{a{href,pop},pop 
 }sub e{escapeHTML i pop}sub r{seek F,0,0}chdir G;($b=e(B)||e S)=~m![./]!&¨ 
 open F,"+>>$b";flock F,2;r;[<F>];s!\w+外部リンク:.+!l$&,$&!eg,s/\n/br/eg,print F dt($.+ 
 1,':'.b(l e(N)||'七氏','mailto:'.e M),':'.localtime),dd($_),"\n"if$_=e T;r;$t= 
 'スレ';put header,start_html(-title=>$b||$t,encoding,$c,lang,ja),startform,$b?h1( 
 $b).dl(<F>).hidden(B,$b).l $t,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]). 
 $t.x(S),br,submit,Name,x(N),Mail,x(M),br,textarea(T,'',7,80,1),endform,end_html 
  
 ・レス番号が増えないのを fix 。 
 ・スレタイに [./] は使用不可 (「../7thread.cgi」なんてスレ立てられると…) 。 
 ・gmtime は流石にどうかと思う。 
 ・上記改造のしわ寄せを h1 周りに。 
192: nobodyさん [] 03/12/04 21:36 ID:b7RTKokI(1) AAS
 7thread 差分 
 < *i=*param 
 < sub e{escape i pop} 
 > sub e{escape param pop} 
 > -title=>$b=($t='スレ') 
  
 >186 thx URL 
 なるほど、close省略出来たんだ。 
 FileHandle にはスコープは関係なかったね。IO::Fileと勘違いしてた。 
  
 blosxom ... 残り1行じゃFlavourは無理かなぁ 
193(2): 128 [] 03/12/05 03:38 ID:2kvaGCEL(1) AAS
 乙カレーっす。 
  
 7thread ログの形式を変えてみました。 
 今までのログは利用できません。 
  
 あと__DATA__以降にスタイルシートを指定できるようにしました。 
  
 #!/usr/bin/perl 
 use CGI":all";charset$c=Shift_JIS;*i=*param;*x=*textfield;sub l{a{href,pop},pop 
 }sub e($){escapeHTML i pop}chdir G;($F=e B||e S)=~m![./]!?die:open F,">>$F";$t= 
 'スレ';$d=e N||'七氏';flock F,2;s!\w+外部リンク:.+!l$&,$&!eg,s/\n/br/eg,print F li(b(e M? 
 l$d,'mailto:'.e M:$d),localtime.p$_)if$_=e T;open F;$/='';put header,start_html 
 (-title=>$F||$t,-style=><DATAencoding,$c,lang,ja),startform,h1($F||$t),$F?ol( 
 <F>).hidden(B,$F).l $t,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).$t.x(S) 
 ,br,submit,Name,x(N),Mail,x(M),br,textarea(T,'',7,80,1),endform,end_html 
__DATA__ 
 h1{color:red; font-size:140%;} 
 p {margin:0; padding:0.5em; background:#EEF;}
194(2): nobodyさん [] 03/12/05 06:41 ID:1VQJofzV(1) AAS
sage機能実装。大幅に機能削ってしまったのでbranch. 
 marge よろしく;-] 
  
 use CGI":all";charset$c='EUC-JP';sub l{a{href,pop},pop}chdir G;sub e{escapeHTML 
 param pop}$d=e(N)||'七氏';($F=e B)=~/[.\/]/?die:($u=($m=e M)=~/sage/?(stat($F)) 
 [9]:0),open F,">>$F";flock F,2;s!\w+外部リンク:.+!l$&,$&!eg,s/\n/br/eg,print F li(b($m? 
 l$d,'mailto:'.$m:$d),localtime.p$_)if$_=e T;$t='スレ';open F;$/='';*x=*textfield; 
 put header,start_html($F||$t),startform,h1($F||$t),$F?ol(<F>).hidden(B,$F).l$t, 
 '?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).$t.x(B),br,submit,Name,x(N), 
 Mail,x(M),br,textarea(T,'',7,80,1),endform,end_html;$u&&utime time,$u,$F
195(1): nobodyさん [sage] 03/12/05 06:41 ID:??? AAS
 >>193 
 一引数の open で開き直すのはナイスですな。 
  
 start_html に -style を指定すると、外部 CSS への link 要素を吐く 
 (少なくとも CGI.pm 3.00 では) 。ので、style 要素に変更。 
  
 #!/usr/bin/perl 
 use CGI":all";sub l{a{href,pop},pop}sub e($){escapeHTML param pop}($C,$B,$S,$D) 
 =<DATA>;charset$C;chdir G;($F=e B||e S)=~m![./]!?die:open F,">>$F";flock F,2;s! 
 \w+外部リンク:.+!l$&,$&!egx,s/\n/br/eg,print F li(b(e M?l e N||$D,'mailto:'.e M:e N||$D 
 ),localtime.p$_)if$_=e T;*x=*textfield;open F;put header,start_html(-title=>$F 
 ||$B,encoding,$C,lang,ja),style($S),startform,h1($F||$B),$F?ol(<F>).hidden(B,$F 
 ).l Threads,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).NewThread.x(S),br, 
 submit,Name,x(N),Mail,x(M),br,textarea(T,'',7,80,1),endform,end_html 
  
 __DATA__ 
 Shift_JIS 
 7ch 
 h1{color:red; font-size:140%;} p {margin:0; padding:0.5em; background:#EEF;} 
 七氏 
196: 195 [sage] 03/12/05 06:42 ID:??? AAS
 >>194 
 むぅ。(w 
197(1): nobodyさん [sage] 03/12/05 07:03 ID:??? AAS
 >193 
 お疲れ様。取り急ぎ、動作報告します。 
 Perl5.8.2/CGI.pm3.00, Perl5.6.1/CGI.pm2.752で確認しました。 
  
 -style=<DATA> は、CGIpm/3.00ではlinkのhref属性に入ってしまう。 
 引数の型によってlink, styleの出力を区別してるらしい。see _style method in CGI.pm 
  
 古いバージョンのCGI.pmではxmlのencoding属性の指定は出来ない。 
 <body encoding="..." となるので特に影響はないけど。
198: nobodyさん [sage] 03/12/05 13:00 ID:??? AAS
 >>194 
 *本当に下がる* sage 機能、無理矢理 merge 。:p 
 URL auto link が犠牲に。 
  
 #!/usr/bin/perl 
 use CGI":all";sub l{a{href,pop},pop}sub e($){escapeHTML param pop}($C,$B,$D,@S) 
 =<DATA>;charset$C;chdir G;($F=e B||e S)=~m![./]!?die:open F,">>$F";flock F,2;$s 
 =($m=e M)=~/sage/;*x=*textfield;s/\n/br/eg,print F li(b($m?l e N||$D,'mailto:'. 
 $m:e N||$D),localtime.p$_)if$_=e T;close F;$s&&utime 1,1,$F;open F;put header, 
 start_html(-title=>$F||$B,encoding,$C,lang,ja),style(@S),startform,h1($F||$B), 
 $F?ol(<F>).hidden(B,$F).l Top,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]). 
 New.x(S),br,submit,Name,x(N),Mail,x(M),textarea(T,'',7,80,1),endform,end_html 
  
 __DATA__ 
 Shift_JIS 
 7ch 
 七氏 
 h1 {color:red; font-size:140%;} 
 p {margin:0em; padding:0.5em; background:#EEF;} 
  
 utime は FreeBSD だとファイル閉じないと効かなかったです。 
 Win98SE だと開いたままいぢれたけど。 
199: 128 [sage] 03/12/05 18:07 ID:??? AAS
 皆様。乙! 
 sage 機能いいですねぇ。 
  
 >>197 
 チェックありがとっす! 
 -style ってバージョンによって違ったんですね。 
 2.98でも確認できました。 
  
 修正版です。$/の定義はズルしてます。(w 
  
 #!/usr/bin/perl 
 use CGI":all";charset$c=Shift_JIS;*x=*textfield;sub l{a{href,pop},pop}sub e($){ 
 escapeHTML param pop}chdir G;($F=e B||e S)=~m![./]!?die:open F,">>$F";$t=Thread 
 ;$d=e N||NoName;flock F,2;s!.+外部リンク:.+!l$&,$&!eg,s/\n/br/eg,print F li(b(e M?l$d,' 
 mailto:'.e M:$d),localtime.p$_)if$_=e T;open F;put$/=header,start_html(-style=> 
 {code=><DATA>},title=>$f=$F||"7$t",lang,ja,encoding,$c),startform,h1($f),$F?ol( 
 <F>).hidden(B,$F).l$t.List,'?':ol(li[map{l$_,"?B=$_"}sort{-M$a<=>-M$b}<*>]).New 
 .$t.x(S),div(submit,Name,x(N),Mail,x(M)),textarea(T,'',7,80,1),endform,end_html 
 __DATA__ 
 h1{color:red; font-size:140%;} 
 p {margin:0; padding:0.5em; background:#EEF;} 
 b {color:green;} 
 a:hover{background:#FCC;} 
 input,textarea{margin:0 10px 0 2px;} 
200(6): nobodyさん [sage] 03/12/05 22:30 ID:??? AAS
 マ板から誘導されました。 
 既出と承知しつつ、1行掲示板です。 
 一応、名前と本文両方がないとはじく機能と、投稿日付つき。 
 (4行目の $t[4]/$t[3] を $t[2]:$t[1] にすれば、手動リロードの 
 簡易チャットにもなります。名前毎回入れるの面倒だけど。笑) 
 ファイル名は lb.cgi、パーミッション755で置けばいきなり稼動可能です。 
  
 #!/usr/bin/perl 
 $l='log.dat';@t=localtime();$t[4]++;use CGI;$q=new CGI;$d=$q->param('n'); 
 $e=$q->param('h');($d&&$e)and &g;&p;exit;sub g{&i;open F,">$l";flock(F,2);print 
  F "$t[4]/$t[3]:$d<BR>$e<HR>\n",@b;close F;}sub p{&i;print"Content-Type:text/h" 
 ,"tml\n\n一行掲示板<FORM METHOD=POST ACTION=\"lb.cgi\" NAME=1>名前<INPUT TYPE=" 
 ,"TEXT SIZE=20 NAME=n><BR>本文<INPUT TYPE=TEXT SIZE=60 NAME=h><BR><INPUT TYPE=" 
 ,"SUBMIT VALUE=\"送信\"></FORM><HR>",@b;}sub i{open F,"$l";@b=<F>;close F;} 
201(2): nobodyさん [sage] 03/12/06 00:29 ID:??? AAS
 >>200 
 特にヒネりもなく縮め。 
  
 #!/usr/bin/perl 
 use CGI":all";*P=*param;-e($F='log.dat')||open F,">$F";if(P(n)&&P(h)){open F, 
 "+<$F";flock F,2;@b=<F>;@t=localtime;seek F,0,0;print F++$t[4],"/$t[3]:",P(n), 
 '<BR>',P(h),"<HR>\n",@b}open F;$I='<INPUT TYPE';print"Content-Type: text/html\n 
 一行掲示板<FORM METHOD=POST ACTION=\"$0\">名前$I=TEXT SIZE=20 NAME=n><BR>本文", 
 "$I=TEXT SIZE=60 NAME=h><BR>$I=SUBMIT VALUE=\"送信\"></FORM><HR>",<F> 
  
 過去の作品に出てくるテクや Perl の言語仕様をしっかり研究してから 
 次回作を作って見せて欲しいな。 
  
 ところで 7blosxom と 7thread と 7ch (>>128128(8):  ◆PAmX3cjLtw  [] 03/04/18 15:48 ID:yrVQyLZr(2/2) AAS
 俺も作ってみた。 
 2chモドキの掲示板です。ログファイル F が必要。 
 URLと、発言番号への自動リンクがありますが、使い物になるかどうか・・・。 
 Win98のPWSとLinuxのApacheで動作を確認しました。。。 
  
 ------------ 7ch.cgi ----------------- 
 #!/usr/bin/perl 
 use CGI':all';*i=*param;$n=i N;$m=i M;$t=i T;open F,'+<F';eval{flock F,2};1 for 
 <F>;$.++;if($t){$_=$t;s/</</g;$h='<a href=';s!(https?外部リンク:.+?)$!$h$1>$1</a>!mg 
 ;s!>>(\d+)!$h#$1>>>$1</a>!g;s/\n/br/eg;seek F,0,2;print F dt("$. :".b(a{href=> 
 $m?"mailto:$m":undef,name=>$.},$n||='名無しさん'),':'.localtime),(dd $_.br.br) 
 ."\n"}seek F,0,0;*x=*textfield;print header(-charset=>''),start_html(-style=>' 
 body{background:#eee}b{color:green}').startform,dl(<F>),hr,submit('書き込む'),' 
 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',5,70,1),endform.end_html; 
 -------------------- 
  
 結構つかれた・・・。  
〜) 、参加作という事で 
 外部リンク:cm.xrea.cc に載せていいですか? >オリジナル作者各位 
 と言っても実際に載せるのは年越してからになると思いますが(苦)。 
202(1): nobodyさん [sage] 03/12/06 17:16 ID:??? AAS
 スレ汚し失礼。簡易telneted。ポート1029を使います。 
 use Socket;socket(SERVER,2,1,getprotobyname('tcp'));setsockopt(SERVER, 
 SOL_SOCKET,4,1);bind(SERVER,pack_sockaddr_in(1029,INADDR_ANY));listen( 
 SERVER,1);select(SERVER);$|=1;for(;;){accept(CLIENT,SERVER) 
 ;select(CLIENT);$|=1;$cmd;print '$ ';while($c=getc(CLIENT)){if($c=~/\n$/){ 
 print `$cmd`,"\n",'$ ';$cmd = '';}else{print $c;$cmd .= $c;}}close CLIENT}
203: 128 [sage] 03/12/07 00:41 ID:??? AAS
 >>201 
 7ch と 7thread のオリジナル作者です。 
 どうぞ載せてくださいませ。 
204: nobodyさん [] 03/12/07 03:57 ID:enSfwhvY(1/3) AAS
 >201 
 参加してたんだw。どぉも。一年ぶりです。 
 <- 7blosxomのプロトタイプ提供者(===7wiki)です。 
  
 > 外部リンク:cm.xrea.cc に載せていいですか?  
 他にも幾つかストックあるので、公開時には掲載よろしくお願いします。m(_ _)m 
上下前次1-新書関写板覧索設栞歴
あと 248 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s