七行プログラミング (452レス)
七行プログラミング http://medaka.5ch.net/test/read.cgi/php/1036141603/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
40: nobodyさん [sage] 02/11/03 14:48 ID:??? WebProg らしく。 --- cgi-lib.po --- my($m,$l,$i,$e,$x)=@ENV{'REQUEST_METHOD','CONTENT_LENGTH'};my$d=sub{$d= "Request to receive too much data: $l bytes\n";print"Content-Type: text/plain", "\n\n$d";die$d};sub ReadParse{$l>$$x?&$d:$m=~/POST/?($e=$l-read STDIN,$i,$l):( $i=$ENV{QUERY_STRING});local*I=pop;my@i=(split(/[&;]/,$i),($m?():@ARGV));for(@i ){tr/+/ /;s/%([\da-f]{2})/pack'H2',$1/egi for my($k,$v)=split/=/,$_,2;$I{$k}.= $I{$k}?"\0$v":$v}!$e&&scalar@i}${$x='cgi_lib::maxdata'}=131072 --------------- cgi-lib.pl 互換。Perl4 不可、multipart 未対応。 require 'cgi-lib.po'; $cgi_lib::maxdata = 1024; # POST 時の上限サイズ ReadParse(*in); # or ReadParse(\%in); http://medaka.5ch.net/test/read.cgi/php/1036141603/40
41: ◆FruitsMIpE [sage] 02/11/03 18:15 ID:??? 名前入力欄つき掲示板 $q=$ENV{QUERY_STRING}; if($q){@p=split /[&;]/,$q; foreach(@p){($a,$b)=split "="; $b=~tr/+/ /; $b=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$b;} open W, ">> b.log"; print W "$i{n}<>$i{m}\n"; close W;} print "Content-type: text/html\n\n<html>\n<head><title>掲示板</title></head>\n<body>\n"; open R, "b.log"; while(<R>){chomp; ($n,$m)=split "<>"; print "$n:$m<br>\n";} close R; print qq{<hr>\n<form>Name<input type="text" name="n"> <input type="text" name="m" size="64"><input type="submit"></form>\n<hr>\n</body></html>\n}; exit; http://medaka.5ch.net/test/read.cgi/php/1036141603/41
42: ◆FruitsMIpE [sage] 02/11/03 18:27 ID:??? 改良 $q=$ENV{QUERY_STRING}; if($q){@p=split /[&;]/,$q; foreach(@p){($a,$b)=split "="; $b=~tr/+/ /; $b=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$b;} open W, ">> b.log"; print W "$i{n}:$i{m}\n"; close W;} print "Content-type: text/html\n\n<html>\n<title>BBS</title>\n\n"; open R, "b.log"; while(<R>) {chomp; print "$_<br>\n";} close R; print qq{<hr>\n<form>Name<input type="text" name="n"> <input type="text" name="m" size="64"> <input type="submit"> [<a href="b.cgi">Reload</a>] [<a href="../../">Back</a>]</form>\n<hr>\n</html>\n}; http://medaka.5ch.net/test/read.cgi/php/1036141603/42
43: nobodyさん [sage] 02/11/03 18:38 ID:??? >>24 を発展させてみた。一行掲示板。 --- 7bbs.cgi --- #!/usr/local/bin/perl $l='7bbs.log';if(read STDIN,$_,$ENV{'CONTENT_LENGTH'}){for(split/&/){$_=(split /=/)[1];tr/+/ /;s/%([a-f\d]{2})/pack'H2',$1/egi;push@r,$_}@r=(''.localtime,@r); open F,"+<$l";flock F,2;@l=(join(': ',@r),"<br>\n",<F>);truncate F,0;print F @l[0..49]}open F,$l;print join('><input type=',"Content-type: text/html\n\n". '<title></title><form action=7bbs.cgi method=post','text name=n','text name=w', 'submit></form>'),<F> ---------------- 新しい順に表示。50件まで保存。 >>41 ネタが被るねぇ。ゴメンね。(´・ω・`) http://medaka.5ch.net/test/read.cgi/php/1036141603/43
44: nobodyさん [sage] 02/11/03 19:17 ID:??? 動かねぇです大将!>>42>>43 >>42のは半角でも全角でも変な文字が保存されるです!モジコード変えてもダメだったです! >>43のはファイルが作成されませぬ! 私のミステイクでしょうか!ハラキリ! http://medaka.5ch.net/test/read.cgi/php/1036141603/44
45: nobodyさん [sage] 02/11/03 19:22 ID:??? >>44 open F,"+<$l"; ←注目 つー事で、ログファイルは先に作っといて。 $l='7bbs.log'; のトコがログファイルのパスだから、よろ。 http://medaka.5ch.net/test/read.cgi/php/1036141603/45
46: nobodyさん [require使えば] 02/11/03 19:44 ID:??? 1行でも書けるな。 http://medaka.5ch.net/test/read.cgi/php/1036141603/46
47: nobodyさん [sage] 02/11/03 20:07 ID:??? ( そんな事より1さん、ちょっと聞いてよ。スレとあんまり関係ないけどさ。 `ー‐―V――――――――――――――――――――――――――――― ;:'´ ( このあいだ、WebProg板へ行ったんですの。WebProg板。 _....._{{ 〃 \ そしたらなんかRuby!と書かれたレスが多発していましたわ。 , - ' ,..、、.ヾ{{フ'⌒`ヽ、ー―――V―――――――――――――――――― / ,:', -‐‐` ´ '´⌒ヽ ヾ:、 _....、、、、 ( で、よく見たらrubyistという名前の書き込みで、 . ,' ,'´ ,ィ ,ィ ,' , `ヽ', ',-<´ , `ヽ.`ー――――V― 相手してもらえてないんです。 ,' .i /|. /.| { i, i, }. }_,,)) lニ二二ミヽ.、 ':, ,.: '´ ,_.....__`ヽ、 ,..-‐-、),.....`_―――――― ! | ! .,'-.{ ! !|; |`、.}゙!.! |. ! ヽ.l ./ ,! ,,`ヾ:、 ':, ./'´ ̄`ヾ、、ヽ,.:'´ ,:‐:、 ,.-、 ヽ. ', ', |Vァ=、゙、 `゙、!-_:ト,リ', l ! | ゙レ__,〃_/リ !.'; .} ./l_|___ノ! l `、 ', / //`''} }.'; ', ヽ、', l:!Kノ}. f:_.)i゙i: リ ! l ル' ̄`` ´-、,ノノ l l .!,;:=、`:.`:>=、.j,} |__人(( _ノノノ | | l!iヾ- ' , .!__:ノ ゙ ,リ l リ'´ .|' ̄ヽ __ `><ノ | {;:'ノ ノtrテ;、.Y ! ,--、 __`彡 ノ . ',|!!、 r‐┐ ` ノ' /,イ ! __ , ⌒'/!| | !.`ー‐'´, ゙じ' ノ ! h. ._: ´ ソ).( 'i!゙、ヽ、 ゙ー' _, ィ,:',:''´ ! !、 ー' ノイ ! | | !、 !フ `フ'リ ! ル'ヽ.._ _..、(ン ノ ) ゙:、ィ、jヾー::: 'iヘ ノ',リ./! .| |ー`┬、' ´ 〃 l. トヾ、.゙`ィ'' ´ヽ、/// \二|`\ー‐‐'´ ,、- '´ ヽ、゙、 { `>"、 ! ! ! | `>-、 | |、 ________∧_____ /\\ ', } //`ヽ| ',.!゙、 !// ゙!/ ! ( もうね、アホかと。馬鹿かと‥ http://medaka.5ch.net/test/read.cgi/php/1036141603/47
48: nobodyさん [] 02/11/03 21:17 ID:QK0oCR94 明文化 ・7行×79文字 ・Perl ・#!/usr/local/bin/perlは含まない。実質的なプログラムで七行。 ・スペースも1文字分。2バイト文字は2文字分。 でいいでしょうか? http://medaka.5ch.net/test/read.cgi/php/1036141603/48
49: rubyist@カラアゲうまうま [sage] 02/11/03 21:21 ID:??? perl版cc1だれか作れ http://medaka.5ch.net/test/read.cgi/php/1036141603/49
50: nobodyさん [sage] 02/11/03 22:32 ID:??? このスレを見たとき、 ム板かと思いますた。 http://medaka.5ch.net/test/read.cgi/php/1036141603/50
51: nobodyさん [sage] 02/11/03 22:34 ID:??? 掲示板は本家でもうかなり短くなってないか? 別に委員だけど、もっと面白いネタがないかなと。 http://medaka.5ch.net/test/read.cgi/php/1036141603/51
52: 43 [sage] 02/11/03 23:08 ID:??? >>48 プログラムが Web 関連物なら言語は何でもいいんじゃ? シェバング行は C の #include みたいなモンだから…。 >>51 単に縮めるだけじゃなく、7行をギリギリまで使って機能増やすのも 楽しみの一つだよ。掲示板に食傷気味なのは同意するけど。(w つー事で改良。 --- 7bbs.cgi --- #!/usr/local/bin/perl $l='7bbs.log';if(read STDIN,$_,$ENV{CONTENT_LENGTH}){@r=''.localtime;for(split /&/){$_=(split/=/)[1];tr/+/ /;s/%([a-f\d]{2})/pack'H2',$1/egi;s/(["&<>])/'?'. unpack('C',$1).';'/eg;push@r,$_}open F,"+<$l";flock F,2;@l=(join(': ',@r). "<br>\n",<F>);truncate F,0;seek F,0,0;print F @l[0..49]}open F,$l;print join( '><input type=',"Content-type: text/html\n\n<title>7BBS</title><form action=". '7bbs.cgi method=post','text name=n','text name=w',"submit></form>\n"),<F> ---------------- ["&<>] を数値文字参照に変換。 http://medaka.5ch.net/test/read.cgi/php/1036141603/52
53: nobodyさん [sage] 02/11/03 23:18 ID:??? 7行のスレッドフロート型掲示板とかは無理? http://medaka.5ch.net/test/read.cgi/php/1036141603/53
54: ◆FruitsMIpE [sage] 02/11/03 23:44 ID:??? >>43 Winではflock 使えなくてエラーに ヽ(*`Д´)ノ ワァァン >>44 ガ━━━━(;゚Д゚)━━━━ン !! すいませn原因わかりませn Windows環境でSJISならうまくいくんだけど・・ >>53 前に2ch型掲示板作ってみたけど、無理確定のような気がする。 誰か作れる人、いるかな http://medaka.5ch.net/test/read.cgi/php/1036141603/54
55: nobodyさん [] 02/11/04 06:56 ID:5+umhhBG 7行2ch型掲示板 ただし、かちゅ〜しゃがないとだめぽ、 read.cgiがないから読めないし、書きこみフォームもないから、あとsubject.txtの新スレは一番下になる。 flockもしていない、かちゅに依存するために変数名が長い。 下記のディレクトリ構成で成功 /test +--/bbs.cgi +--/subject.txt +--/dat/ #!/usr/local/bin/perl $t=time;read(STDIN,$b,$ENV{'CONTENT_LENGTH'});@p=split(/&/,$b);foreach (@p) {($a,$v)=split "=";$v=~tr/+/ /;$v=~s/%([A-Za-z0-9]{2})/pack("C", hex($1))/eg; $i{$a}=$v;}if(!$i{'key'}){$i{'key'}=$t;}open(F,">>./dat/$i{'key'}.dat"); print F "$i{'FROM'}<>$i{'mail'}<>$t<>$i{'MESSAGE'}<>$i{'subject'}\n";close(F); open(S,">>./subject.txt");print S "$i{'key'}.dat<>$i{'subject'}(1)\n"; close(S);exit; つーか激しく2ch型から離れているが。 http://medaka.5ch.net/test/read.cgi/php/1036141603/55
56: nobodyさん [sage] 02/11/04 09:38 ID:??? >>55 それは普通掲示板といいません(w win鯖では動いたけどな。 http://medaka.5ch.net/test/read.cgi/php/1036141603/56
57: nobodyさん [sage] 02/11/04 12:16 ID:??? やはりCGIだと、定型的な部分で多く取られてしまいますな。 http://medaka.5ch.net/test/read.cgi/php/1036141603/57
58: ( ´∀`)でけた〜 [sage] 02/11/04 12:59 ID:??? [アクセス解析] CGI名: a.cgi 空ファイル用意: log そのままアクセスしてログ取り 引数に a をつけて解析結果表示 #!/usr/bin/perl &a if $ENV{QUERY_STRING}eq'a';($s,$m,$j,$d,$g,$y)=gmtime(time+9*60*60);$i=$ENV{ REMOTE_ADDR};$h=$ENV{REMOTE_HOST}||gethostbyaddr(pack('C4',split(/\./,$i)),2)|| $i;$y=sprintf("%d/%02d/%02d/ %02d:%02d:%02d",$y+=1900,++$g,$d,$j,$m,$s);open(F, '+<log');@d=<F>;unshift(@d,"$y,$h,$ENV{HTTP_USER_AGENT},$ENV{HTTP_REFERER}\n"); seek(F,0,0);print F @d;sub a{print"Content-type:text/html\n\n";open(F,'log'); while(<F>){($t,$h,$u,$r)=split(/,/,$_);print"$t<br>$h<br>$u<br>$r<hr>"}exit} http://medaka.5ch.net/test/read.cgi/php/1036141603/58
59: nobodyさん [sage] 02/11/04 14:26 ID:??? で、実用性ある奴はあるのか? http://medaka.5ch.net/test/read.cgi/php/1036141603/59
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/%02d %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" rows="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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 383 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.006s