七行プログラミング (452レス)
七行プログラミング http://medaka.5ch.net/test/read.cgi/php/1036141603/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
60: nobodyさん [] 02/11/04 15:47 ID:CMvXGJGy (・ε・)v キニシナイ! http://medaka.5ch.net/test/read.cgi/php/1036141603/60
61: nobodyさん [sage] 02/11/04 20:59 ID:??? HTML4.01strictとかどうよw http://medaka.5ch.net/test/read.cgi/php/1036141603/61
62: nobodyさん [sage] 02/11/04 23:14 ID:??? >>57 試しにHTMLを分離して作ってみたら大分縮んだ。 ttp://boobar.hp.infoseek.co.jp/7bbs2/7bbs2_0.0.1.tar.gz >>58 縮めてみた。 #!/usr/bin/perl if($ENV{QUERY_STRING}eq'a'){open F,'log';print"Content-Type: text/html\n\n",map join('<br>',split/,/).'<hr>',<F>;exit}$i=$ENV{REMOTE_ADDR};$h=$ENV{REMOTE_HOST} ||gethostbyaddr(pack('C4',split/\./,$i),2)||$i;($s,$m,$j,$d,$g,$y)=localtime; open F,'+<log';eval{flock F,2};@d=(sprintf('%d/%02d/%0
2d %02d:%02d:%02d',1900+ $y,$g+1,$d,$j,$m,$s).",$h,$ENV{HTTP_USER_AGENT},$ENV{HTTP_REFERER}\n",<F>); truncate F,0;seek F,0,0;print F @d http://medaka.5ch.net/test/read.cgi/php/1036141603/62
63: age [age] 02/11/05 18:48 ID:??? age http://medaka.5ch.net/test/read.cgi/php/1036141603/63
64: nobodyさん [] 02/11/14 07:16 ID:M/ZRCXHw あげ http://medaka.5ch.net/test/read.cgi/php/1036141603/64
65: nobodyさん [] 02/11/20 18:28 ID:707UhyRv 7行Wikiくれ。 http://medaka.5ch.net/test/read.cgi/php/1036141603/65
66: nobodyさん [sage] 02/11/21 07:14 ID:??? ---- 7wiki.cgi #!/usr/local/bin/perl -w use strict; use CGI qw/:standard/; use AnyDBM_File; use Fcntl; my$id=$ENV{'QUERY_STRING'}||'FrontPage';my$msg=param('msg')||''; my$url='./7wiki.cgi'; tie(my%DB,'AnyDBM_File','wiki',O_CREAT|O_RDWR,0666)or die; if ($msg){$DB{$id}=$msg} $msg=escapeHTML $DB{$id}; untie(%DB);print header; print qq(<form action="$url?$id" method="POST"><input type="submit"><b>$id</b> <br /><textarea name="msg" row
s="6" cols="60">$msg</textarea></form><hr />); $msg=~s/\b([A-Z][a-z]+([A-Z][a-z]+)+)\b/<a href="$url?$1">$1<\/a>/g;print $msg; http://medaka.5ch.net/test/read.cgi/php/1036141603/66
67: nobodyさん [sage] 02/11/21 19:40 ID:??? >>66 #!/usr/local/bin/perl -w use strict;use CGI':standard';use AnyDBM_File;use Fcntl;tie(my%D,'AnyDBM_File', '7wiki',O_CREAT|O_RDWR,0666)||die;my$i=$ENV{QUERY_STRING}||'FrontPage';$_= escapeHTML($D{$i}=param('m')||$D{$i});untie%D;print header(),qq(<form action="7wiki.cgi?$i" method="post"><input type="submit" /><b>$i</b><br /> <textarea name="m" rows="6" cols="60">$_</textarea></form><hr />); s|\b([A-Z
][a-z]+([A-Z][a-z]+)+)\b|<a href="7wiki.cgi?$1">$1</a>|g;print \b 要る? http://medaka.5ch.net/test/read.cgi/php/1036141603/67
68: nobodyさん [] 02/11/21 22:28 ID:mGPCTII6 >>67 thx ... WikiName の正規表現は \b([A-Z][a-z]+){2,}\b って書けるみたいだね。 \b 要るかどうかしらないけど、個人的には欲しい。 # http://c2.com/cgi/wiki?LinkPattern > s|\b([A-Z][a-z]+([A-Z][a-z]+)+)\b|<a href="7wiki.cgi?$1">$1</a>|g; < s|\b([A-Z][a-z]+){2,}\b|a "7wiki.cgi?$1",$1|ge; 多少、汚くても良いのなら、 - use Fcntl やめて O_CREAT|O_RDWR は定数で - s/standard/all/; tr/"//d; s/AnyDBM/DBM/g; s' /''g; - s/use strict;/; s/\bmy\b/g; -
etc .. ・・・で、4〜5行くらいにはダイエット出来るかな。 短いwiki・・・他に、こんなのもあるよ。 http://c2.com/cgi/wiki?ShortestWikiContest http://medaka.5ch.net/test/read.cgi/php/1036141603/68
69: nobodyさん [sage] 02/11/21 22:40 ID:??? 間違えた・・ s|\b([A-Z][a-z]+){2,}\b|a{href=>"7wiki.cgi?$1"},$1|ge; http://medaka.5ch.net/test/read.cgi/php/1036141603/69
70: nobodyさん [sage] 02/11/21 22:52 ID:??? 括弧わすれてた・・・ゴメン(再び修正 \b(([A-Z][a-z]+){2,})\b http://medaka.5ch.net/test/read.cgi/php/1036141603/70
71: nobodyさん [sage] 02/11/22 07:28 ID:??? use CGI':all';use SDBM_File;$i='7wiki.cgi';$j=$ENV{QUERY_STRING}||'FrontPage'; tie%D,'SDBM_File',$i,258,438or die;$_=$D{$j}=param('m')||$D{$j};untie%D;put header,startform('post',"$i?$j"),submit,b($j),br,textarea('m',$_,6,60),endform ,hr;$_=escapeHTML$_;s|\b(([A-Z][a-z]+){2,})\b|a{href=>"$i?$1"},$1|ge;put$_ http://medaka.5ch.net/test/read.cgi/php/1036141603/71
72: nobodyさん [sage] 02/11/22 14:36 ID:??? Good job. http://medaka.5ch.net/test/read.cgi/php/1036141603/72
73: nobodyさん [sage] 02/11/22 18:30 ID:??? 折角なので副産物も(ワンライナーだけど れぎゅれーしょん ちぇっか usage: ./7rc.pl < target_script.pl #! perl -nw chomp;length>79||$.>7?die:print"line $. OK\n" http://medaka.5ch.net/test/read.cgi/php/1036141603/73
74: nobodyさん [sage] 02/11/24 15:39 ID:??? >>71 use Fcntl; はいらないのか? http://medaka.5ch.net/test/read.cgi/php/1036141603/74
75: nobodyさん [sage] 02/11/24 17:47 ID:??? use Fcntl; O_CREAT|O_RDWR を纏めて 286(tie の引数 定数部分は環境依存するかも知れないので /usr/include/sys/fcntl.h を参照 http://medaka.5ch.net/test/read.cgi/php/1036141603/75
76: nobodyさん [sage] 02/11/25 00:58 ID:??? DB_File なら use した時点で O_CREAT も O_RDWR も使えるようになる罠。 use DB_File; print join '/', O_CREAT => O_CREAT, O_RDWR => O_RDWR; そして O_CREAT は実際 512 だったり 256 だったりする罠。 http://medaka.5ch.net/test/read.cgi/php/1036141603/76
77: nobodyさん [sage] 02/11/25 06:28 ID:??? 余った行で僅かばかり実用的にしてみる。 #!/usr/local/bin/perl -w use CGI qw(:all escapeHTML);use DB_File;$j=$ENV{QUERY_STRING}||'FrontPage';($f) =$0=~m|([^/]+)(\.cgi)$|;open(L,'+<&='.($d=tie%D,'DB_File',$f,O_CREAT|O_RDWR or die)->fd)||die;eval{flock L,2};$_=escapeHTML($m=$D{$j}=param('m')||$D{$j});$d-> sync;$d=untie%D;s/\b(([A-Z][a-z]+){2,})/a{href=>"$f.cgi?$1"},$1/ge;s/\x0d\x0a| \x0d|\x0a/<br>/gx;put header,title("$f - $j"),startform('post',"$f
.cgi?$j"), submit,b($j),br,textarea('m',$m,6,60),endform,hr,$_ 陽に輸入してやらないと上のタイミングで escapeHTML 使えなかったよ。 (FreeBSD 4.7R, Perl 5.005_03, CGI.pm 2.89) http://medaka.5ch.net/test/read.cgi/php/1036141603/77
78: nobodyさん [sage] 02/11/25 23:38 ID:??? #! perl use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{QUERY_STRING}||'FrontPage') =~/$w/;$f='7wiki.cgi';$o=-f$p?'<':'>';open F,"+$o$p"or die;eval{flock F,2};read F,$m,-s$p;$_=escapeHTML($m=param('m')||$m);seek F,0,0;print F $m;close F;$_.=hr .ul map{li"".localtime time-86400*-M," $_"}sort{-M$a<=>-M$b}grep{/^$w$/}glob"*" ;s/$w/a{href=>"$f?$1"},$1/ge;put header,start_html($p),h1($p),startform('post', "$f?$p"),textarea('m',$m,6,60),br,submit,end
form,hr,pre($_),end_html 一覧を付けてみた・・・(残り:1行と10字 :all tag で全部輸入できなかった?:html2 とかでも無理かな? http://medaka.5ch.net/test/read.cgi/php/1036141603/78
79: nobodyさん [sage] 02/11/26 00:26 ID:??? < $_=escapeHTML($m=param('m')||$m);seek F,0,0;print F $m; > $_=escapeHTML $m=param('m')||$m;seek F,0,0;print F$m; http://medaka.5ch.net/test/read.cgi/php/1036141603/79
80: nobodyさん [sage] 02/11/26 00:30 ID:??? < .ul map{li"".localtime time-86400*-M," $_"}sort{-M$a<=>-M$b}grep{/^$w$/}glob"*" > .ul map{li"".localtime time-86400*-M,$_}sort{-M$a<=>-M$b}grep{/^$w$/}glob"*" http://medaka.5ch.net/test/read.cgi/php/1036141603/80
81: 74 [sage] 02/11/26 00:51 ID:??? >>75 勉強になりました。 http://medaka.5ch.net/test/read.cgi/php/1036141603/81
82: nobodyさん [sage] 02/11/26 01:21 ID:??? use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{QUERY_STRING}||FrontPage)=~ /$w/;$f=script_name;open(F,'+'.(-f$p?'<':'>').$p)||die;eval{flock F,2};read F,$ m,-s$p;$_=escapeHTML$m=param(z)||$m;seek F,0,0;print F$m;close F;$_.=hr.ul map{ li"".localtime time-86400*-M,$_}sort{-M$a<=>-M$b}grep{/$w$/}glob'*';s/$w/a{href =>"$f?$1"},$1/ge;put header,start_html($p),h1($p),startform(0,"$f?$p"),textarea (z,$m,6,60),br,submit,endform,hr,pre($_),end_html h
ttp://medaka.5ch.net/test/read.cgi/php/1036141603/82
83: nobodyさん [sage] 02/11/26 04:49 ID:??? >>78 ごめん、CGI.pm 2.89 置いたパスを use lib し忘れたままテストしてた。 5.005_03 同梱のは 2.46 で、この辺だと escapeHTML はどのタグにも 含まれてない。submit() を呼んだ時点で main に定義されるのかな。 #! perl use CGI':all';$f=script_name;$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{QUERY_STRING }||FrontPage)=~/$w/;open(F,-f$p?"+<$p":"+>$p")||die;eval{flock F,2};$/=();$_= escapeHTML$m=param(z)||<F>;truncate F,0;seek F,0,0;print F$m;close F;$_=join hr ,
endform,pre($_),ul map{li localtime((stat$_)[9])." $_"}sort{-M$a<=>-M$b}grep /$w$/,<*>;s/$w/a{href=>"$f?$1"},$1/eg;put header,start_html($p),startform(0, "$f?$p"),h1($p),textarea(z,$m,6,60),br,submit,$_,end_html 1 byte 長くなった。むぅ。 http://medaka.5ch.net/test/read.cgi/php/1036141603/83
84: nobodyさん [sage] 02/11/26 06:11 ID:??? 書き忘れたけど、78-82 はWin/ActivePerlで作ってました。 他の環境に移したら CGI.pm 2.56 で同様のエラーが出たので パッケージ名をつけてCGI::escapeHTMLで対応。 もしくは、モジュールを新しくする。でいいかな>対策 NOTE QUERY_STRING を PATH_INFO に変更して url の区切りを ? -> / に。 # 勿論、 s/// のスラッシュも他の記号に変更する。 (stat)[9] BUG ページ読むだけでも書き込みしてるので タイムスタンプが。。 http://medaka.5ch.net/test/read.cgi/php/1036141603/84
85: nobodyさん [sage] 02/11/26 22:06 ID:??? >>84 パッケージ名付けた方が優しいかな。> escapeHTML タイムスタンプのバグフィクス版。以下の環境で動作。 ・Perl 5.005_03, CGI.pm 2.46 ・Win98SE, AN-HTTPD 1.41g ・FreeBSD 4.7R, Apache/1.3.27 #!/usr/local/bin/perl use CGI':all';$w='\b(([A-Z][a-z]+){2,})';($p)=($ENV{PATH_INFO}||FrontPage)=~/$w /x;if(open F,($m=param z)?">$p":$p){eval{flock F,2};$/=();$_=CGI::escapeHTML($m ||=<F>);truncate F,0;seek F,0,0;print F$m;close F}opendir D,'./';$_=join hr, en
dform,pre($_),ul map{li localtime((stat)[9])." $_"}sort{-M$a<=>-M$b}grep/$w$/ ,readdir D;$f=script_name;s|$w|a{href=>"$f/$1"},$1|eg;put header,start_html($p) ,startform(0,"$f/$p"),h1($p),textarea(z,$m,6,60),br,submit,$_,end_html AN-HTTPD だとグロブ効かなかったので readdir に変更。 i-httpd だと PATH_INFO 使えなかったけど、まぁこれは 少数派という事で。あともしかしたら MacPerl が truncate で引っかかるやも。 http://medaka.5ch.net/test/read.cgi/php/1036141603/85
86: nobodyさん [sage] 02/11/27 00:19 ID:??? CGI.pm 2.752, perl 5.005_03 build for sun4-solaris Apache 1.3.27 #! perl -w use CGI':all';$w='\b(([A-Z][a-z]+){2,})';$f=script_name;$/=();($p)=(path_info|| FrontPage)=~/$w/;opendir D,'.';if(open F,($m=param z)?">$p":$p){eval{flock F,2} ;$_=CGI::escapeHTML$m||=<F>;eval{truncate F,0};seek F,0,0;print F$m;close F}$_. =hr.ul((map{li"".localtime((stat)[9]),$_}sort{-M$a<=>-M$b}grep/$w$/,readdir D)[ 0..9]);s|$w|a{href=>"$f/$1"},$1|eg;put header,start_
html$p),h1($p),startform(0 ,"$f/$p"),textarea(z,$m,6,60),br,submit,endform,pre($_),end_html 一覧の表示数制限機能追加。 truncate は eval で対応できるかな?>MacPerl http://medaka.5ch.net/test/read.cgi/php/1036141603/86
87: nobodyさん [sage] 02/11/27 01:56 ID:??? #! perl -w use CGI':all';$w='\b(([A-Z][a-z]+){2,})';$/=();($p)=(path_info||FrontPage)=~/$w /x;$f=script_name."/";opendir D,'.';if(open F,($m=param z)?">$p":$p){eval{flock F,2};$_=CGI::escapeHTML$m||=<F>;eval{truncate F,0};seek F,0,0;print F$m;close F }$_.=hr.ul((map{li"".localtime((stat)[9]),$_}sort{-M$a<=>-M$b}grep/$w$/,readdir D)[0..14]);s|$w|a{href=>$f.$1},$1|eg;put header,start_html($p),h1($p),startform (0,$f.$p),textarea(z,$m,6,60),br,submi
t,endform,pre($_),end_html -1byte http://medaka.5ch.net/test/read.cgi/php/1036141603/87
88: nobodyさん [sage] 02/11/27 06:40 ID:??? #! perl -w use CGI':all';@c=qw/white eeeeff/;$d=0;$e=path_info();$f=script_name;*p=*param; $h=DELETE;$i=RENAME;$j=COPY;$k=FILES;opendir D,"./$e";if(p$h){unlink p$k}put header,start_html('7files'),startform(0,$t),table(Tr([th({bgcolor=>ddddff},['', qw/Name Size LastModified/]),(map{td({bgcolor=>$c[$d++%2]},[checkbox($k,0,$_,'' ),g($_)." ".a({href=>"$f/$_"},$_),-s,"".localtime((stat)[9])])}sort{$a cmp $b} grep/^[^.]/,readdir D)])),(map{submit$_}($i,$j,$h))
,endform,end_html;sub g{$t= -d$_[0]?'folder':'text';img{src=>"/icons/$t.gif",alt=>$t}} ファイル削除 CgI あぱっち用 RENAME と COPY は未実装。もうちょっと痩せないとなぁ・・ WikiName のリンク処理(存在しないページのリンクは?に。 s|$w|(-f$1?'':$1).a{href=>$f.$1},-f$1?$1:'?'|eg; http://medaka.5ch.net/test/read.cgi/php/1036141603/88
89: nobodyさん [sage] 02/11/27 08:37 ID:??? 検索エンジン <? fopen("http://www.yahoo.co.jp");?> http://medaka.5ch.net/test/read.cgi/php/1036141603/89
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 363 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s