七行プログラミング (452レス)
上下前次1-新
350: 04/12/17 21:57 ID:??? AAS
 >>349 
 正規表現による暗黙の代入とグローバル特殊変数を使った引数渡しは使えそうだ。 
  
 PythonのTinyP2PがXMLRPC等のライブラリを使っているので、 
 動機のひとつにライブラリなしバージョンを作ろう、ってのがあったみたい。 
 サイトを良く読むとblogとかにその辺の事情も書いてる様です。 
  
 他の言語では、Java(16行), Ruby(6行)版も投稿されてます。 
 http://developers.slashdot.org/comments.pl?sid=132907&cid=11103175 
 http://developers.slashdot.org/comments.pl?sid=132907&cid=11097812 
351: 04/12/24 21:39 ID:??? AAS
 ほす 
352(1): 05/01/30 23:39 ID:cEoW2dZ/(1)調 AAS
 >>341-342 
 そういえば、昔、5kっていう5KBにHTMLページを収めるってなコンテストがあったなぁ。 
 http://www.the5k.org/ 
 5Kといい、7Lといい、こういうの好きなんだわ漏れ。 
 7行といえば560バイトでWebPage作るってのはどう? 
 ちょっと擦違いスマソ 
353: 05/01/31 00:37 ID:??? AAS
 >>352 
 「どう?」じゃなくて、作って晒せば? こういうのはやったもん勝ち。 
 面白いと思わせる事ができれば挑戦者も出てくるんじゃない? 
  
 ただスレのルール的に、「560 byte」でなく、1 行は 79 byte + 改行、 
 7 行以内でそのまま使える、って条件を満たしてないと個人的には 
 受け入れ難いなぁ。 
354: [age] 05/01/31 14:38 ID:??? AAS
 <? 
  
 echo 'PHPもまぜてくれ'; 
  
 ?> 
355(3): 05/02/06 00:29 ID:??? AAS
 じゃぁ、phpで7行wiki 
  
 <? require("Text/Wiki.php");require("Cache/Lite.php");$c=&new Cache_Lite(); 
 $s=$_SERVER[PHP_SELF];$g=$_GET;$b=&$_POST[b];$n=$g[n]?$g[n]:"FrontPage";$b&& 
 $c->save($b,$n)&&header("Location: $s?n=$n");($b=$c->get($n))||$g[c]=e; 
 $h="<h1>$n</h1>";if($g[c]==e)$h.="<form method=post action='?n=$n'>". 
 "<textarea name=b rows=30 cols=80>$b</textarea><input type=submit>"; 
 else{$w=&new Text_Wiki;$w->setRenderConf(xhtml,wikilink,new_url,"?n=%s"); 
 $h.=$w->transform($b,xhtml)."<hr><a href='?c=e&n=$n'>e";}?><html><body><?=$h?> 
  
 PEAR::Text_Wikiが必要。Cache_LiteはPEARにデフォルトで入ってる気がする。 
 あとshort_open_tag=Onでよろしく。 
  
 整形ルールは http://wiki.ciaweb.net/yawiki/index.php?area=Text_Wiki&page=SamplePage 
 日本語のwikinameは使えなかったりする。これはText_Wikiが対応していないせい。 
356: 2005/04/24(日)00:09 ID:s2OIHVmv(1)調 AAS
 保守あげ 
357: 2005/04/26(火)00:51 ID:UrRypboo(1)調 AAS
 >>355 
 ちょっとずるい気がする 
358(1): 2005/04/26(火)17:50 ID:??? AAS
 どの辺が? タグを閉じていないあたり?
359: 2005/04/27(水)02:12 ID:??? AAS
 >>358 
 ライブラリ使い過ぎると面白さ半減ってことだろ。 
360: 2005/04/27(水)03:24 ID:0BxullHs(1)調 AAS
 モジュール/ライブラリに関して 
 >>46 >>135 >>136 >>174 >>175  
 http://cm.xrea.cc/techinfo.cgi の 0.1. ライブラリ及びモジュールの利用 
  
 >>355 
 requireって () 省略できるはず。 
361: 2005/04/27(水)07:43 ID:??? AAS
 >>355 
 まぁでも、7行で基本機能を備えたwikiが使えるなら実世界でも結構有用じゃないか。 
 Text_Wikiの機能のデモにはなるでしょ。 
  
 むしろwiki技術関連スレ向きとは思うが。 
 向こうにも一応アンカー張ってあるね。 
362: 2005/04/28(木)12:12 ID:??? AAS
 流れを無視して、7vote が 7 行に収まったのでパッケージング。 
  
 #!perl 
 use CGI":all";charset$c='UTF-8';${$_}=param$_ for f,n,v;$f=~s/\W//g;open F,"+<$ 
 f"if chdir V;eval{flock F,2};$t=<F>;/\t/and$D{$`}+=$' for<F>;seek F,0,0;$n?$D{$ 
 n}||=1:$v&&$D{$v}++,print F$t,map"$_\t$D{$_}\n",keys%D if$n||$v;$L{$K[$i++]}=$_ 
 for radio_group(v,[@K=sort{$D{$b}<=>$D{$a}}keys%D]);put header,start_html(-lang 
 ,ja,encoding,$c,-Title,$t),h1($t),startform,table({},Tr[map{td["$L{$_}($D{$_})" 
 ,hr{width,$D{$_}}]}@K]),hr,p(textfield(n),hidden(f,$F),submit),endform,end_html 
  
 UTF-8 になったのがちょっと悔しい。 
 ファイル名は \w+ にしました。 
363: [hg] 2005/11/07(月)20:21 ID:??? AAS
 半年ぶりフォーーーーーーーーーーーーーーーーーーーーーー 
364: 2005/11/23(水)11:59 ID:8dGTpf7c(1)調 AAS
 良スレあげ 
365(5): 2006/01/21(土)13:50 ID:??? AAS
 #!/usr/bin/perl 
 my@d=([qw/? ? ? ? ? ? ? ? ? ? ? ? ? ?/],[qw/☆ △ ■/]); 
 my$c='Shift_JIS';my$l='ja';use CGI':standard';my@r=(0)x@d; 
 print header(-charset=>$c),start_html(-encoding=>$c,-lang=>$l),start_form, 
 (map{my$i=$_;ul li[(map{$r[$i]+=param($_);$_.textfield -name=>$_}@{$d[$i]}), 
 "計 $r[$i]"]}0..$#d),ul(li"$r[1]÷$r[0]=".eval{$r[1]/$r[0]}),submit,end_form, 
 end_html; 
366: 2006/01/21(土)23:54 ID:e+ke+qvM(1)調 AAS
 なぜ丸付き数字と図形なのかわからんけど面白いですね。 
 どういうときに使えるだろう・・・。と考えてしまう 
367(1): クロエ 2006/01/22(日)02:56 ID:??? AAS
 http://tool-6.net/?0001 
 イメージ的には、こんな感じなんですが…。【1】,「?〜?まで入力した数値を総計。」 
 【2】,「A+B+Cに入力した数値を総計。」 
  
 【3】,「【2】÷【1】×100」っていう演算プログラムなんですが…。 
368(2): 365 2006/01/22(日)10:02 ID:??? AAS
 >>367 
 仕様変更は34,000円からになっておりますw 
 話の流れがわからない人は2chスレ:tech 
  
 >>365はかなりゆとりがあったので7Excelにしてみた。 
 スタイルシートを別ファイルにしてもいいならまだまだいけそうだ。 
 #!/usr/bin/perl 
 @x='A'..'G';@y=1..10;$c='Shift_JIS';use CGI':all';@r=(0)x(@x+1);print header( 
 -charset=>$c),start_html(-encoding=>$c,-lang=>'ja',-head=>style({-type=> 
 'text/css'},'table{border-collapse:collapse}input,th{width:50px}td{text-align: 
 right}td,th{border:1px solid gray}')),start_form,table(Tr(map th($_),'',@x,''), 
 (map{$i=$_;$s=0;Tr td[$_,(map{$p=param"$i$x[$_]";$s+=$p;$r[$_]+=$p;textfield 
 "$i$x[$_]"}0..$#x),($r[-1]+=$s,$s)[1]]}@y),Tr td['',@r]),submit,end_form,end_html 
369: 365 2006/01/22(日)16:39 ID:??? AAS
 use Storable;$f='file';$s=8;$c='Shift_JIS';%p=qw/-1 〇 0 _ 1 ●/;@m=map([map 0 
 ,0..$s+2],0..$s+2);($x,$y)=map param($_)%($s+1),qw/x y/;$r=1;use CGI':all';sub 
 f2{my($w,$y,$x,$c)=@_;$u=1;if(0>$r*$m[$y][$x]){$c++;$m[$y][$x]*=$u=f2($w,$y+$w 
 ->[0],$x+$w->[1],$c)}elsif(0<$c&&0<$r*$m[$y][$x]){$u*=-1}$u}sub r{if($y&&$x&&! 
 $m[$y][$x]){for(0..7){$i=$_*atan2 1,1;$l=[map int(sprintf'%f',$_*sqrt 2),sin$i, 
 cos$i];$z++if 0>f2$l,$y+$l->[0],$x+$l->[1]}if($z){$m[$y][$x]=$r;$r*=-1}}}$m[$s/ 
 2+(0<($_&2))][$s/2+(0<($_&1))]=$_%3?1:-1 for 0..3;($r,@m)=@{retrieve$f}if-s$f;r 
 ;store[$r,@m],$f;print header(-charset=>$c),start_html(-encoding=>$c,-lang=> 
 'ja'),table(Tr[map{$i=$_;td[map a({-href=>"o.cgi?y=$i&x=$_"},$p{$m[$i][$_]}),1 
 ..$s]}1..$s]),$p{$r},end_html; 
  
 7オセロ? 
 o.cgiで保存。 
 同じディレクトリに記録用ファイルの "file" を作成。 
 要 Storable.pm (Active Perl なら最初から入っているはず) 
 リセットは手動で "file" を空にするw 
 7行に収まると思ったけど見込みが甘かった。 
370(1): クロエ 2006/01/23(月)02:25 ID:??? AAS
 >>365 
 本当にありがとうございます。設置の仕方が分かりませんorz orz orz 
 今日6時間くらい、CGIについて解説してあるサイトを隅から隅まで見ましたが、収穫なしですwww 
 ばかん ばかん 俺のばかん 
 テキストエディタ?を使うんですか? 
371: 2006/01/23(月)03:02 ID:??? AAS
 >>370 
 CGI設置について質問 【Part2】 
 2chスレ:php 
  
 だがどのみち使いこなせないと見た 
372(1): クロエ 2006/01/23(月)16:06 ID:??? AAS
 >>365氏 
 本当にありがとうございます。 
 2chでこんな優しい人初めてだ。 
  
 勉強してきますた。 
 鯖にアップロードして、パーミッションを755にするだけでおKですか? 
373: 2006/01/23(月)16:30 ID:??? AAS
 >>372 
 やってから聞いてる? 
374(2): クロエ 2006/01/23(月)18:13 ID:??? AAS
 372であってますか? 
375: 2006/01/23(月)18:19 ID:??? AAS
 >>374 
 鯖によるから合ってるとか間違ってるとか言えん。 
 とにかくやって、エラーが出たらまた聞いてくれよ。 
 何かやるたびに聞かれたんじゃ迷惑だし、そもそもスレ違い。 
376(1): 2006/01/23(月)19:29 ID:??? AAS
 ($f,$s,$r,@p)=qw/file 8 1 _ ● 〇/;use Storable;use CGI':all';sub f{$u=1;my($y 
 ,$x,$c)=@_;if(0>($t=$r*$m[$y][$x])){$m[$y][$x]*=f($y+$p,$x+$n,1)}elsif($c&$t){ 
 $u=-1;$z++}$u}$$_=param($_)%($s+1)for qw/x y/;@m=map[(0)x$s+1],0..$s+1;map$m[$s 
 /2+$_/2][$s/2+$_%2]=$_%3?1:-1,0..3;($r,@m)=@{retrieve$f}if-s$f;$o=\$m[$y][$x]; 
 if($y&&$x&&!$$o){for(0..7){($p,$n)=map sprintf('%.f',$_),sin($i=$_*0.78),cos$i; 
 f$y+$p,$x+$n}$$o=$r,$r*=-1 if$z}store[$r,@m],$f;charset '';print header,$p[$r], 
 table Tr[map{$i=$_;td[map a({href,"?y=$i&x=$_"},$p[$m[$i][$_]]),1..$s]}1..$s] 
  
 昨日の続きで7オセロ! 
 モジュール詳しくないからやらないけどモジュール*だけ*で構成なんてのも面白そうだ。 
377: 2006/01/23(月)19:31 ID:??? AAS
 >>374 
 質問するならまず68,000円のサポートチケットを購入してからにしてくださいw 
378(3): 376 2006/01/23(月)21:15 ID:??? AAS
 ($f,$s,$r,@p)=qw/file 8 1 _ ● 〇/;use Storable;use CGI':all';sub f{$u=1;my($y 
 ,$x,$c)=@_;if(0>($t=$r*$m[$y][$x])){$m[$y][$x]*=f($y+$p,$x+$n,1)}elsif($c&$t){ 
 $u=-1;$z++}$u}$$_=param($_)%($s+1)for qw/x y/;@m=map[(0)x($s+1)],0..$s+1;map$m[ 
 $s/2+$_/2][$s/2+$_%2]=$_%3?1:-1,0..3;($r,@m)=@{retrieve$f}if-s$f;$o=\$m[$y][$x] 
 ;if($y&&$x&&!$$o){for(0..7){($p,$n)=map sprintf('%.f',$_),sin($i=$_*0.78),cos$i 
 ;f$y+$p,$x+$n}$$o=$r,$r*=-1 if$z}store[$r,@m],$f;charset '';print header,$p[$r] 
 ,table Tr[map{$i=$_;td[map a({href,"?y=$i&x=$_"},$p[$m[$i][$_]]),1..$s]}1..$s] 
  
 括弧はずしすぎでバグっていたので修正 
 ファイル名省略すると Lynx じゃ動かないね。 
379(3): 2006/01/23(月)21:31 ID:??? AAS
 >>378 
 パスできない仕様はどうかと。 
 ファイルに記録するより Cookie にでも持たせた方がいいんじゃない? 
  
 参考に C の6行オセロを Perl に移植してみた。 
 オリジナルより数 byte 大きい。 ;-) 
  
 #!/usr/local/bin/perl 
 sub K{$m[$p]||do{for(@m[0..7]){$v=$p+$_;$v+=$_ while$m[$v]==9-$t;if($v-$p-$_&&$ 
 m[$v]==$t&&($a=$s=$v=$p,$d)){{$m[$v]=$t;$m[$v+=$_]-$t&&redo}}}}}@m[40,41,49,50, 
 0..7]=(3,6,6,3,-10..-8,-1,1,8..10);$s=$t=3;@c=(qw(・ ○ ●),$/);while($s-1){$_% 
 9?K$p=$_:($m[$_]=9),print$c[$m[$_]/3]for 9..81;$a?($a=$d=$p=9):$s?($s=0,print 
 "pass\n"):++$s;K$p+=$t-6?(($p,$_)=<>=~/\d/g,$_*9):1until$a-9;$t=9-$t;$a=$d=0} 
380: 2006/01/23(月)22:25 ID:??? AAS
 >>379 
 できませんよ><
381(1): 2006/01/24(火)00:41 ID:??? AAS
 @x='A'..'G';@y=1..10;@s=qw/合計 平均/;use CGI':all';charset '';print header, 
 style({type,'text/css'},'table{border-collapse:collapse}td,input{text-align: 
 right;width:70px}td,th{border:1px solid gray}'),start_form,table(Tr[th(['',@x, 
 @s]),(map{$i=$_;$s=0;$n=0;td[$_,(map{$p=param"$x[$_]$i";($t=$s)==($s+=$p)||$n++ 
 ;($t=$r[$_])==($r[$_]+=$p)||$v[$_]++;textfield"$x[$_]$i"}0..$#x),($r[@x]+=$s,$s 
 ,eval{$s/$n})[1,2]]}@y),td([$s[0],@r,'']),td[$s[1],map($v[$_]?sprintf('%.3f',( 
 $c++,($t=$r[$_]/$v[$_]),$v+=$t)[1]):'',0..@x),eval{$v/$c}]]),submit,end_form; 
  
 >>368 がいまいち糞コードになりきれていなかったので平均の計算も追加。おやすみ〜 ノシ 
382: 378 2006/01/24(火)00:44 ID:??? AAS
 >>379 
 >パスできない仕様はどうかと。 
 あまり細かいこと考えていないのでw 
 今日はもう寝ますがなんかすごそうなので明日動かしてみます。 
383: 2006/01/25(水)22:05 ID:??? AAS
 >>379 
 昨日見てみましたがこれをCGI化するのは行数的にちょっと無理じゃないですかねぇ。 
 でも面白かったです。 
384(1): 2006/01/25(水)22:06 ID:??? AAS
 初回起動時からの累計と過去1週間の日別カウンタ。 
 設定を変えれば一日の時間別みたいな使い方もできる。 
  
 ($f,$l,$z)=qw{./counter.dat 7 5};use CGI':all';sub d{sprintf 
 '%d年%02d月%02d日(%s)',1900+$_[5],1+$_[4],$_[3],(qw/日 月 火 水 木 金 土/)[$_[6 
 ]]}sub n{sprintf"%0${z}d回",shift}$n=time;$d=24*60*60;$p=$n-$n%$d;if(open F, 
 "+<$f"){eval{flock F,2};($s,@d)=map[split/\s+/],<F>;$s->[0]||=$n;$s->[1]++;$p== 
 $d[0][0]?$d[0][1]++:unshift@d,[$p,1];$n-=$d*$l;seek F,0,0;printf F"%d\t%010d\n" 
 ,@$_ for@d=($s,grep$n<$_->[0],splice@d,0,$l);truncate F,tell F;close F}charset 
 '';print header,ul map{li b(n$_->[1]),d localtime$_->[0]}@d 
385: 2006/01/25(水)22:08 ID:??? AAS
 7CMS 
 このスレで作った >>365 >>378 >>381 >>384 をモジュール化して一元管理する。 
 サードパーティー製品でもCGI.pmを使ったものなら大丈夫かも。 
 >>137 >>274 は一応動いた。 
 使い方は全部同じディレクトリに入れればいいだけだから。 
  
 use CGI':all';$d=param '*';@r=[$0=~/([^\\\/]+)$/,'START'];$p=$`;for$n(<*>){if($r 
 [0][0]ne$n&&$n=~/\.cgi$/){$r='';chdir$p;open F,$n;read F,$c,-s F;tie*G=*STDOUT, 
 'main';eval"package C$`;$c";untie*G;$r=~s/^.+?(\r?\n){2}//s;$r=~s/(<a\s.*?\?)(. 
 *?>)/$1*=$d&$2/gisx;$r=~s!(?=</for)!hidden -name,'*',-value,$d!egi;push@r,[ 
 $n,$r.$@]}}AUTOLOAD{ref(shift)?($r.=join'',@_):bless[]}charset '';put header, 
 table Tr td{style=>'vertical-align:top;text-align:left;border:1px solid gray'}, 
 [ul(li[map a({href,"?*=$_"},$d==$_?b($r[$_][0]):$r[$_][0]),0..$#r]),$r[$d][1]] 
386: [age] 2006/01/26(木)18:42 ID:??? AAS
 hage 
387: 2006/01/26(木)21:31 ID:??? AAS
 7メル 
  
 ($p,$t,$s)=('/usr/sbin/sendmail','mail@example.com','メールフォームから');use 
 CGI':all';$$_=param $_ for qw/f m/;($f)=$f=~/^([\w.-]{1,64}\@[\w.-]{1,128})$/i; 
 ($m=substr$m,0,2**16)=~tr/\0/ /;$m=~s/\r\n?/\n/g;$m=~s/^\.$/../gm;charset '';put 
 header,startform,'あなたのメールアドレス',textfield(-name,'f'),br,'メッセージ', 
 br,textarea(-name,'m',-rows,10,-cols,60),br,submit,endform;if($f&&$m&&open M, 
 "| $p -t"){print(M join"\n",'Content-Transfer-Encoding: 8bit',"Reply-To: <$f>", 
 "To: <$t>","Subject: $s",'',$m,'')&&put '管理者へ送信しました。';close M} 
388: 2006/01/26(木)21:31 ID:??? AAS
 7カレ 
  
 @c=([('silver')x 7],[('red',('black')x 5,'blue')],'lavender');use CGI':all';$s= 
 24*60*60;@t=localtime($t=time);@r=td{align=>'right',bgcolor=>$c[2]},font{color 
 =>$c[1][$t[6]]},b $t[3];@t1=localtime($i=$t-$s);while($t[4]==$t1[4]||$t1[6]<6){ 
 unshift@r,td{align=>'right'},font{color=>$c[$t[4]==$t1[4]][$t1[6]]},$t1[3];@t1= 
 localtime($i-=$s)}@t2=localtime($i=$t+$s);while($t[4]==$t2[4]||0<$t2[6]){push@r 
 ,td{align=>'right'},font{color=>$c[$t[4]==$t2[4]][$t2[6]]},$t2[3];@t2=localtime 
 ($i+=$s)}charset '';put header,table Tr[map join('',@r[7*$_..7*($_+1)-1]),0..$#r] 
389: [age] 2006/01/26(木)21:32 ID:??? AAS
 何でもいいからボケッと見てないでおまいらも参加しる! 
390(1): 2006/01/27(金)16:58 ID:KYetQvuJ(1)調 AAS
 require "cgi-lib.pl"; 
 &ReadParse;if($ENV{'REQUEST_METHOD'} eq 'POST'){if ($in{'imagefile'}) 
 {open(WRITEFILE,'>', "datafile");binmode(WRITEFILE);print WRITEFILE $in{'imagefile'};close(WRITEFILE);}} 
  
 7うp掲示板 
 これ以上はムリポ
391: 2006/01/27(金)22:17 ID:??? AAS
 >>390 
 安全を保ちつつ複数ファイルに対応しる! 
392: 2006/01/27(金)22:18 ID:??? AAS
 7ナビ 
 同一階層以下のHTMLにリンクを貼る。携帯用サイトマップみたいなもん。 
  
 $d='./';$e='s?html?';$n=10;@l=(['prev',-1],['next',1]);use CGI':all';sub r{my( 
 $d,$e)=@_;map{if(-d){r($_,$e)}elsif(/\.$e$/&&$p<=$c++&&$c<=$p+$n&&open F,$_){-B 
 ||read F,$h,2**16;close F;$h=~/>\s*([^<>]*?)\s*<\/ti/is;[$_,$1||$_]}else{()}} 
 <$d/*>}$p+=param 'p';($d)=$d=~/(.+?)[\\\/]*$/;@r=r$d,$e;if($p<0){$p=$c-$c%$n;$c 
 =0;@r=r$d,$e}elsif(!@r){$p=0;$c=0;@r=r$d,$e}charset '';put header,dl dt(map a({ 
 href=>"?p=".($p+$n*$_->[1])},$_->[0]),@l),dd{style=>'margin:0px'},join"\n",ol({ 
 start=>1+$p},li[map a({href=>$_->[0]},$_->[1]),@r]),p"$c files" 
393: 2006/01/27(金)22:19 ID:??? AAS
 7 httpd 
 これはCGIじゃないよ。 
 起動でlistenとhttp://127.0.0.1/index.htmlで表示。 
 Options Indexes があるはずも無いのでファイル名まで指定。 
  
 if(!grep(/^SERVER/i,keys%ENV)&&socket(S,2,1,0)&&setsockopt(S,65535,4,pack'l',1) 
 &&bind(S,pack'S n a4 x8',2,80)&&listen S,1){select+(select(S),$|=1)[0];while( 
 accept C,S){select+(select(C),$|=1)[0];@r=unpack"C*",getpeername C;if(recv(C,$d 
 ,8192,0)&&$d=~/^GET ([\x21-\x7e]{1,256}) H/ and$p=join'/',map{s/\.+/./g;$_}grep 
 length,split/[\\\/]+/,$1){print C 'HTTP/1.0 ',do{$n="\r\n\r\n";if(open F,"./$p" 
 ){binmode F;read F,$b,-s F;close F;"200$n$b"}else{"404${n}Not Found\n"}};undef 
 $b}close C;printf"$d%d.%d.%d.%d:%d\n%s\n",@r[4..7],256*$r[2]+$r[3],'-'x 64}} 
394: [age] 2006/01/30(月)04:20 ID:??? AAS
 みんながんがれ!! 
395: 2006/02/10(金)18:36 ID:??? AAS
 うぅ、ここPerl限定なのか… 
 PHPスレ欲しいな。 
396: 2006/02/10(金)18:41 ID:??? AAS
 phpもOKみたいだぞ。 
397: クロエ 2006/02/12(日)00:31 ID:VpXKciXc(1)調 AAS
 >>368 
 365だと367の最後の×100が反映されないんですが…。せんせぇ、お願いします。 
398: 2006/02/15(水)07:50 ID:Q8DDLS00(1)調 AAS
 てめえらどうした!? 
 探求心はつきたか? 
399: 2006/02/19(日)19:16 ID:YpSh6qb6(1)調 AAS
 昔作った今月のカレンダー表示スクリプト。 
  
 ($$,$:,$;,$=)=(localtime)[3..6];printf"%2d%s",$_,++$=%7?$":$/for(print($;+ 
 1900,'/',$:+1,"/$$\n",$"x(($=-=$$-1)%7*3))..28+($:-1?3-$:%7%2:!($;%4))) 
400(2): 2006/02/28(火)10:19 ID:5vE9CKm+(1)調 AAS
 #!/usr/bin/perl  
 if($ENV{'REQUEST_METHOD'}eq'POST'){read(STDIN,$b,$ENV{'CONTENT_LENGTH'});  
 foreach(split(/&/,$b)){($c,$d)=split(/=/,$_);$d=~tr/+/ /;  
 $d=~s/%([a-f\d]{2})/pack('H2',$1)/egi;$form{$c}=$d}open(F,'>>z.txt');  
 print F "$form{y}\n";close F}print"Content-type:text/html\n\n<html>  
 <form action=x.cgi method=post><input type=text name=y><input type=submit>  
 </form><br><br>";open(F,'z.txt');while(<F>){print "$_<br>\n"}print'</html>';  
401: 2006/03/10(金)16:20 ID:OL3a1OF8(1)調 AAS
 在庫から 7wikimini ドゾ。 
 YukiWikiMini の7行版みたいな感じです。 
 実行するにはWという名前のフォルダが必要です。 
  
 use CGI":all";charset$c=Shift_JIS;*i=*param;$f=FrontPage;$i=Index;$u=Update;$F= 
 i(P)||$f;sub e{a{href,"?E=1&P=".pop},@_}sub l($){a{href,"?P=@_"},@_}chdir W;$E= 
 i E;$U=$F eq$u;$I=$F eq$i;$,=$/;if($_=i T){open F,">$F";print F$_}$H=$I+$U;$t=$ 
 H?join$/,map{localtime((stat)[9]).$_}sort{$U&&-M$a<=>-M$b}<*>:($/=!open F)||$E? 
 <F>:escapeHTML<F>;$E||$t=~s/([A-Z][a-z]+){2,}/-f$&?l$&:$&.e"?",$&/eg;put header 
 ,start_html(-title=>$F,lang,ja,encoding,$c),l$f,$H?():e(Edit,$F),l$i,l$u,h1($F) 
 ,$E?startform.hidden(P).textarea(T,$t,20,80).submit.endform:pre($t),$P,end_html 
  
 ページ削除機能が実装されてないので、もうちょっと改良が必要っす。 
402(2): 2006/03/10(金)18:39 ID:??? AAS
 おまいら、このスレ出ている7行プログラムを、 
 インデント付けて整形するプログラムをどうか7行以内で書いてもらえませんか。 
403: 2006/03/10(金)20:42 ID:??? AAS
 >>402 
 モジュールの力を借りずに Perl の構文解析器を七行で書くのは 
 絶望的だし、この手のコードは多分に恣意的なインデントや桁揃え 
 をしないと読み易くもならない。 
  
 ので、手っ取り早く「バラし」て流れを読みたいのなら、これで充分。 
 perl -MO=Deparse script.in > script.out 
  
 もちろんチャレンジ精神を否定しているのではないよ。:o) 
404(1): 2006/03/11(土)14:32 ID:??? AAS
 >>402 
 ム板の7行スレの方であったかもしれぬ。なかったかもしれぬ。 
405: 2006/03/11(土)17:24 ID:??? AAS
 >>404 
 あったよ。Part 2 の 105,129,135,162,163,169,170 辺り。 
  
 …まぁ、通ってきた道なわけですよ。 
406: 2006/03/12(日)19:32 ID:??? AAS
 <?php $s=(int)$_GET['s'];$d=array_map('intval',explode(' ', $_GET['d']));$n= 
 count($d);$m=max($d);$r=imagecreate($s,$s);imagecolorallocate($r,255,255,255); 
 $c=imagecolorallocate($r,128,128,128);$h=$s/2;for($i=0;$i<$n;$i++){$a=pi()*(2* 
 $i/$n-1/2);$t=$h*$d[$i]/$m;$p1[]=$h*(1+cos($a));$p1[]=$h*(1+sin($a));$p2[]=$h+ 
 $t*cos($a);$p2[]=$h+$t*sin($a);imageline($r,$h,$h,$p1[$i*2],$p1[$i*2+1],$c);} 
 imagepolygon($r,$p1,$n,$c);imagepolygon($r,$p2,$n,imagecolorallocate($r,0,0,255 
 ));header('Content-Type: image/gif');imagegif($r);?> 
  
 これはあまり安全じゃないよ。 
 フォーム作るゆとりなかったからアドレスバーの数字を直接いじってみて〜 
 http://127.0.0.1/r.php?s=200&d=5+6+9+8+3+7+2 
407: 2006/03/14(火)00:29 ID:??? AAS
 そのうち7行山田ウイルスとか出てきそうな予感 
408: 2006/03/15(水)00:31 ID:??? AAS
 7行Webサーバができるなら山田もいけそうだな 
409: 2006/03/26(日)01:13 ID:??? AAS
 7行OS 
410: 2006/03/32(土)00:29 ID:WFUzL8FS(1)調 AAS
 あれ、7行WEBサーバってなかったっけ? 
411: 2006/06/12(月)12:59 ID:??? AAS
 過疎スレになっちゃったな。 
412(1): 2006/06/12(月)21:26 ID:NzZJH7e1(1)調 AAS
 先日、会社でちょっとした7行ゲームを作ったんだけど、 
 社内でやっちまったんで、持ち出せないんだよな。 
 7行といっても7分で出来るわけじゃないんだよな。
413: 2006/07/23(日)02:39 ID:8Se2GPZR(1)調 AAS
 七行Blog 
414: 2006/07/27(木)16:06 ID:??? AAS
 >>412 
 そんならカキコすんな 
 なんていってほしいわけ? 
415: 2006/07/31(月)00:02 ID:??? AAS
 うpキボンヌ 
416(3):  ◆GodofTripY  2006/08/01(火)01:25 ID:??? AAS
 ($name, $tripkey) = split(/\#(.+)/, $form{'name'}); 
 if($tripkey){ 
 $salt = substr($tripkey.'H.', 1, 2); 
 $salt =~ tr/\x3A-\x40\x5B-\x60\x00-\x2D\x7B-\xFF/A-Ga-f./; 
 $salt =~ s/[^\.-z]/\./g; 
 $trip = '◆'. substr(crypt($tripkey, $salt), -10);} 
 print "$name$trip"; 
  
 2chトリップ判定。 
417: 2006/08/01(火)02:06 ID:??? AAS
 >>416 
 気持ちはわかるがそれはwebprogではない 
418: 2006/08/01(火)03:23 ID:??? AAS
 >>416 
 どこかで見た事があるんだが^^ 
419: 2006/08/01(火)04:17 ID:??? AAS
 >>416 
 2chってcrypt()なんだね 
420(1): 2006/10/13(金)18:11 ID:UA0b1MaA(1)調 AAS
 6行RSSリーダー 設置して.cgi?以降にfeedのURLを入力 
 モジュールてんこ盛りなのでもっと短く書けるはず 
  
 use LWP::Simple;use CGI":all";use XML::RSS;$h = new CGI;$r = new XML::RSS; 
 $r->parse(get("$ENV{'QUERY_STRING'}"));%c = %{$r->{'channel'}}; 
 print $h->header.'<a href="'.$c{'link'}.'">'.$c{'title'}. 
 "</a><br>$c{'description'}<br>";print "<ul>";for $item (@{$r->{'items'}}){ 
 print '<a href="'.$item->{'link'}.'">'.$item->{'title'}. 
 "</a><br>$item->{'description'}<br>";}print "</ul>".$h->end_html; 
421(1): sage 2006/10/13(金)18:14 ID:??? AAS
 test 
422: 2006/10/13(金)18:17 ID:yRLkeiwT(1)調 AAS
 >>421 
 まさか7行で2chに書き込めるスクリプトを?! 
423: 2006/10/13(金)22:26 ID:??? AAS
 7行も要らんけどな 
424: 2006/10/13(金)23:51 ID:??? AAS
 書き込みのモジュールなんてあった??<<Perl脳 
425(1): 2006/10/14(土)00:15 ID:??? AAS
 書き込みっつーかPOSTするだけだろ 
426: 2006/10/14(土)00:45 ID:??? AAS
 >>425 
 単にPOSTするだけって単にPOSTしただけじゃread.cgiに弾かれる 
427: 2006/10/14(土)01:32 ID:??? AAS
 私はPHPならなんとか作れそうだが、それ以前に2chの仕様を勉強しなくちゃだな。 
428(1): 2006/10/14(土)01:42 ID:??? AAS
 POST先はbbs.cgiだけどな 
429: 2006/10/14(土)02:59 ID:??? AAS
 >>428 
 それすら知らなかった漏れは百回くらい正規表現の勉強でもしましょうか? 
430(2): 2006/10/14(土)06:34 ID:??? AAS
 >>420 
 縮めた。 
  
 #!/usr/bin/perl 
 use LWP::Simple;use XML::RSS;$r=new XML::RSS;parse$r get$ENV{QUERY_STRING};use 
 CGI":all";%c=%{$r->{channel}};put header,a({href,$c{link}},$c{title}),br,$c{$d= 
 description},br,ul(li[map a({href,$_->{link}},$_->{title}).br.$_->{$d}.br,@{$r 
 ->{items}}]),end_html 
431: 2006/10/14(土)14:05 ID:??? AAS
 >>430 
 sugeeeeeeeeeeeeeeeeeeeeee 
 問題無く動いた 
432(1): 2006/10/14(土)15:01 ID:??? AAS
 >>430 からもうちょい縮めた上で HTML がまともになるよう追加。 
  
 #!/usr/bin/perl 
 use CGI":all";use LWP::Simple;use XML::RSS;$r=new XML::RSS;sub A{a{href,$_[0]-> 
 {link}},$_[0]->{title}}charset$C="UTF-8";parse$r get pop;%c=%{$$r{channel}};put 
 header,start_html(-encoding,$C,lang,ja),h1(A\%c),p($c{$d=description}),ul(li[ 
 map A($_).br.$$_{$d},@{$$r{items}}]),end_html 
  
 二行半も空いてるけど付け加える機能を思いつかず。 
433(1): 2006/10/14(土)15:13 ID:??? AAS
 >>432 
 未読管理機能なんかオススメ 
 二行半でやる方法は思い浮かばないorz 
  
 むしろ、どういう過程を経て効率的なソースが引けるようになったのかの方に興味あり苦笑 
 どこか参考にしたサイトとかあります? 
434(1): 2006/10/15(日)11:53 ID:??? AAS
 >>433 
 > 未読管理機能 
 ほい。新着タイトルを太字表示。 
  
 #!/usr/bin/perl 
 use CGI":all";use LWP::Simple;use XML::RSS;$r=new XML::RSS;dbmopen%n,"7rssrdr", 
 420;charset$C="UTF-8";sub A{($t,$l)=@$_{"title","link"};a{href,$l},$n{$l}++?$t: 
 b$t}parse$r get pop;%c=%{$$r{channel}};put header,start_html(-encoding,$C,lang, 
 ja),h1(A$_=\%c),p($c{$d=description}),ul(li[map A.br.$$_{$d},@{$$r{items}}]), 
 end_html 
  
 > どこか参考にしたサイトとかあります?  
 駱駝本とか perldoc とか。冗談でも何でもなく。 
 この遊びのノウハウなら http://cm.xrea.cc/techinfo.cgi に。 
435: 2006/10/16(月)01:39 ID:??? AAS
 >>434 
 >駱駝本とか perldoc とか。 
  
 さもありなんというか結局質の高い基本が一番役にたつんだろうな 
436: aaz [aaz@aaz.com] 2006/11/05(日)22:18 ID:??? AAS
 http://fitaly.com/board/wordperfect/posts/362.html 
437: 2007/05/08(火)22:55 ID:??? AAS
 ほす 
438(4): 2007/12/01(土)02:02 ID:??? AAS
 月次移動可能なカレンダー。c.phpで保存。 
  
 <?php $a=q("Y-m-t","$_GET[y]-1");$d=explode("-",$a);$y="<a href=?y=";$v=$d[0]; 
 $w=$d[1];$z="</tr><tr>";$m="$v-$w";$p=q("Y-m",$w-1,1,$v);$n=q("Y-m",$w+1,1,$v) 
 ;echo"<html>$y$p><</a>$m$y$n>></a> $y c.php>now</a><table border=1><tr>$z";$f= 
 q("w","$m-1");for($i=-6-$f;$i<$d[2]-q("w",$a)+7;$i++){echo($i<1-$f)?"<th>".q( 
 "D",$w,$i,$v)."</th>":(($i<1||$i>$d[2])?"<td></td>":"<td>$i</td>");if(($i+$f)% 
 7==0)echo$z;}echo"</tr></table></html>";function q($x,$w,$i=0,$v=0){return($i) 
 ?date($x,mktime(0,0,0,$w,$i,$v)):date($x,strtotime($w));}?>
439(1): 2007/12/06(木)09:44 ID:??? AAS
 >>438 
 「now」も要らんと思う。 
  
 <?php list($v,$w,$d)=explode("-",$a=q("$_GET[y]-1","Y-m-t"));$f=q("$v-$w-1","w" 
 );echo$l="<a href=?y=",q($w-1,"Y-m",1,$v),"><</a>$v-$w$l",q($w+1,"Y-m",1,$v) 
 ,">></a> $l>now</a><table><tr>";for($i=-6-$f;$i<$d-q($a,"w")+7;){echo$i<1-$f 
 ?"<th>".q($w,"D",$i,$v)."</th>":"<td>".(($i<1||$i>$d)?"":$i)."</td>";if(($i++ + 
 $f)%7==0)echo"</tr><tr>";}function q($w,$x,$i=0,$v=0){return date($x,$i?mktime( 
 0,0,0,$w,$i,$v):strtotime($w));}?></tr></table> 
  
 PHPは不得手なんで、これよりもっと縮む筈。 
440: 438 2007/12/08(土)01:17 ID:??? AAS
 >>439 
 凄いですね。いろんなことができるんだ、と感心しきり。 
 少しだけ縮めた。 
  
 <?php list($v,$w,$d)=explode("-",$a=q("$_GET[y]-1","Y-m-t"));$f=q("$v-$w-1","w" 
 );echo$l="<a href=?y=",q($w-1,"Y-m",1),"><</a>$v-$w$l",q($w+1,"Y-m",1),">></a>  
 $l>now</a><table><tr>";for($i=-6-$f;$i<$d-q($a,"w")+7;){echo$i<1-$f?"<th>".q($w 
 ,"D",$i)."</th>":"<td>".($i<1||$i>$d?"":$i)."</td>";if(($f+$i++)%7==0)echo"</tr 
 ><tr>";}function q($w,$x,$i=0){global$v;return date($x,$i?mktime(0,0,0,$w,$i,$v 
 ):strtotime($w));}?></tr></table> 
441: 438 2007/12/08(土)02:02 ID:??? AAS
 手抜きバージョン。取り合えず表示されるみたいなので… 
  
 <?php function q($w,$x,$i=0){global$v;return date($x,$i?mktime(0,0,0,$w,$i,$v): 
 strtotime($w));}list($v,$w,$d)=explode("-",$a=q("$_GET[y]-1","Y-m-t"));echo$l=" 
 <a href=?y=",q($w-1,"Y-m",1),"><</a>$v-$w$l",q($w+1,"Y-m",1),">></a> $l>now</a> 
 <table><tr>";for($i=-6-$f=q("$v-$w-1","w");$i<32;){echo$i<1-$f?"<th>".q($w,"D", 
 $i)."</th>":"<td>".($i<1||$i>$d?"":$i)."</td>";if(($f+$i++)%7==0)echo"</tr><tr> 
 ";}?></tr></table> 
442: 438 2007/12/08(土)02:37 ID:??? AAS
 HTMLダメダメの超手抜きバージョン。無理やり5行にしてみた。 
  
 <?php list($v,$w,$d)=explode("-",q("$_GET[y]-1","Y-m-t"));echo$l="<a href=?y=", 
 q($w-1,"Y-m",1),"><</a>$v-$w$l",q($w+1,"Y-m",1),">></a> $l>now</a><table>";for( 
 $i=-6-$f=q("$v-$w-1","w");$i<32;){echo$i<1-$f?"<th>".q($w,"D",$i)."</th>":"<td> 
 ".($i<1||$i>$d?"":$i)."</td>";if(($f+$i++)%7==0)echo"</tr><tr>";}function q($w, 
 $x,$i=0){global$v;return date($x,$i?mktime(0,0,0,$w,$i,$v):strtotime($w));}?> 
443: 2007/12/08(土)22:33 ID:??? AAS
 閉じタグ無しでいいなら 
  
 <?php function q($w,$i=1,$x="Y-m"){global$v;return date($x,$i?mktime(0,0,0,$w, 
 $i,$v):strtotime($w));}list($v,$w,$d)=explode("-",q("$_GET[y]-1",0,"Y-m-t")); 
 echo$l="<a href=?y=",q($w-1),"><</a>$v-$w$l",q($w+1),">></a> $l>now</a><table>" 
 ;for($i=-6-$f=q("$v-$w-1",0,"w");$i<32;){echo"<td>",($i<1-$f?q($w,$i,"D"):($i<1 
 ||$i>$d?"":$i)),($f+$i++)%7?"":"<tr>";} 
444: [円柱都市age] 2008/02/14(木)04:21 ID:??? AAS
 >>334 3年越しの7clap. 
  
 #!/usr/bin/perl 
 use CGI":all";charset$c=Shift_JIS;sub d{($m,$m,$h,$d,$m,$y)=localtime(time-pop); 
 $l[0]=(190001+$y*100+$m)*100+$d}param(K,$k=1+param K);($w=escapeHTML(param W))=~ 
 y/\0- / /s;($C,$M,$L,$E,@M)=<DATA>;open L;flock L,2;open C;@l=d>(@c=<C>)[-1]?(d, 
 (0)x25,$/):split/<>/,pop@c;@c<14||shift@c;$l[$_]++for$h+2,1;open C,">$C";print C 
 @c,join"<>",@l;d 1209600;open M;@m=grep$l[0]<=$_,<M>;open M,">$M";print M@m,""ne 
 $w&&d."<>$h<>$w<>\n";put header,start_html(-encoding,$c,lang,ja),$k<10?($M[rand@ 
 M],startform,p(hidden(K),Comment,textfield(W),submit Clap),endform):p$E,end_html 
 __DATA__ 
 log.dat 
 mes.dat 
 >lock.dat 
 沢山の拍手を有り難うございました! 
 拍手が送信されました。ありがとうございました! 
 拍手が送信されました。ありがとうございますた! 
 拍手が送信されました。ありがとさ〜ん!  
  
 ・flock非保護。
445: [ルルイエage] 2008/02/16(土)22:06 ID:??? AAS
 >>327 7kaiseki.cgi 
  
 #!/usr/bin/perl 
 use CGI":all";charset$c=Shift_JIS;($P,$C,$M)=<DATA>;($p=param P).$/ne$P&¨sub 
 l{(sort@_)[-1]/10||1}sub d{@p=localtime time-86400*pop;$g=(190001+$p[5]*100+$p[4 
 ])*100+$p[3]}open C;%c=map{/<>/;$`,$'}<C>;($l,@l)=$c{$q=param(T)||d}=~/\d+/g;put 
 header,start_html(-encoding,$c,lang,ja),h1($q),table((map{Tr td[$z++.':00',$_+0, 
 "/"x($_/l@l)]}@l[0..23]),Tr td[Total,$l+0,""]),h1(Mes),dl(map{s/<>$//;/<>/;$`!=$ 
 z&&dt($z=$`.':00'),dd$'}grep{s/$q<>//}open(M),<M>),h1(Past14day),table(map{Tr td 
 [a({href,"?P=$p&T=".d$x++},$g),$_,"/"x($_/l@s)]}@s=map{$c{d$_}+0}0..13),end_html 
 __DATA__ 
 password 
 log.dat 
 mes.dat 
  
 ・HTML適当。 
 ・ファイルロックなし。 
 ・DATAの1行目にパスワードを設定、「?P=password」でリクエスト。
446(1): 2009/10/15(木)22:52 ID:??? AAS
 最終カキコ一年前なのになんで落ちないんだ? 
447: 2009/10/16(金)18:37 ID:??? AAS
 >>446 
 cos this thread is very good! don't you think so? 
448:  忍法帖【Lv=40,xxxPT】(7+0:8)  【19.3m】 電脳プリオン ◆3YKmpu7JR7Ic  2012/09/30(日)17:44 ID:??? AAS
          | | ガガガガガッ 
           | | 
           人 
   ∧_∧   <  >_∧∩ 
   ( ・∀・)   人`Д´)/ ←>>140 
  と    )  <  >_∧∩ 
    Y /ノ    .人`Д´)/ ←>>155 
     / )    <  >_∧∩ 
   _/し' //. V`Д´)/ ←>>320 
  (_フ彡        / 
449: 2017/12/30(土)12:58 ID:YhlYw6jg(1)調 AAS
 誰でも簡単にネットで稼げる方法など 
 参考までに、 
 ⇒ 『半藤のブブイウイウレレ』   というサイトで見ることができます。 
  
 グーグル検索⇒『半藤のブブイウイウレレ』 
  
 WUFNFIRDC9 
上下前次1-新書関写板覧索設栞歴
あと 3 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s