七行プログラミング (452レス)
上下前次1-新
132: ◆PAmX3cjLtw 03/04/19 12:39 ID:S+81Ncm0(1/2) AAS
>>131
修正ありがとう!勉強になります。
httpへの自動リンクも入れてみたけど、p抜かしたりズルしてます。
【今後の課題】
・キャップもどき追加(s/#.*/crypt$&,'◆'/e)
・全角小文字のkが文字化けするバグ
use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!>>(\d+)!a{href,"#R$1"},
$&!eg,s!https?外部リンク:.+?$!a{href,$&},$&!emg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},
print F dt("$. :".b(a{name,"R$.",($m=i M)&&(href,"mailto:$m")},i(N)||'nobody'.
'さん'),':'.localtime),dd($_.p),"\n"if$_=escapeHTML i T;*x=*textfield;seek F,0
,0;put header(-charset=>$c='Shift_JIS'),start_html({lang,'ja',encoding,$c,Style
,'b{color:#080}body{background:#eee}'}),dl(<F>),hr,startform,submit('書き込む')
,' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1),endform,end_html
133: 動画直リン 03/04/19 12:40 ID:PZJVQOkw(1) AAS
外部リンク:www.agemasukudasai.com
134: ◆PAmX3cjLtw 03/04/19 12:41 ID:S+81Ncm0(2/2) AAS
すまそ。&置換するの忘れました。
use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!&gt;&gt;(\d+)!a{href,"#R$1"},
$&!eg,s!https?外部リンク:.+?$!a{href,$&},$&!emg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},
print F dt("$. :".b(a{name,"R$.",($m=i M)&&(href,"mailto:$m")},i(N)||'nobody'.
'さん'),':'.localtime),dd($_.p),"\n"if$_=escapeHTML i T;*x=*textfield;seek F,0
,0;put header(-charset=>$c='Shift_JIS'),start_html({lang,'ja',encoding,$c,Style
,'b{color:#080}body{background:#eee}'}),dl(<F>),hr,startform,submit('書き込む')
,' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1),endform,end_html
135(3): 03/04/19 12:54 ID:??? AAS
ライブラリをつかってよいのなら、主要な処理はライブラリに書けば数文字でかけますね。
136(2): 03/04/19 21:11 ID:??? AAS
>>135
個人的にはモジュール不可派だけど、WebProg だし
標準モジュールだけ使用可にした方が面白いものが
出てきそうな気がするのでそういう縛りで考えてるよ。
137(2): ◆PAmX3cjLtw 03/04/20 02:19 ID:??? AAS
encoding をハズしてなんとかイけたよ。疲れた。
まとめ&使い方
・番号自動リンク( >>100 とか入力する)
・URL自動リンク(外部リンク:...行末までリンク)
・キャップ(名前欄の # 以降をcryptします)
・EUC-JP で保存する(じゃないと文字化けする)
・&を&に置換する
・カレントに空ファイル F を作ること
------------------------------- 7ch.cgi
use CGI':all';open F,'+<F';[<F>];$.++;*i=*param;s!&gt;&gt;(\d+)!a{href,"#R$1"},
$&!eg,s!https?外部リンク:.+?$!a{href,$&},$&!emg,s/\n/br/eg,seek(F,0,2),eval{flock F,2},
($n=i(N)||'nobodyさん')=~s/#.*/crypt$&,'◆'/e,print F dt("$. :".b(a{name,"R$."
,i(M)&&(href,'mailto:'.i M)},font{color,'green'},$n),':'.localtime),dd($_.p),"
"if$_=escapeHTML i T;seek F,0,0;*x=*textfield;put header(-charset=>'EUC-JP'),
start_html({lang,'ja',bgcolor,'#efefef'}).dl(<F>),startform,p(submit('書き込む'
),' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1)),endform,end_html;
138: [i] 03/04/20 04:52 ID:??? AAS
縮めるならロックなんてしなくてもよいだろ。
139: 03/04/20 04:57 ID:??? AAS
>>137
・改行しないとレス番が2以上に増えない。
・Mozilla 1.3 だと font では色変わらんかったんで、CSS に戻し。
・> 一個でリンク。
use CGI':all';open F,'+<F';[<F>];seek F,0,2;*i=*param;s!&gt;(\d+)!a{href,"#R$1"
},$&!eg,s!https?外部リンク:.+$!a{href,$&},$&!emg,s/\n/br/eg,eval{flock F,2},($n=i(N)||
'nobodyさん')=~s/#.+/crypt$&,'◆'/e,print F dt(++$.,':'.b(a{name,"R$.",i(M)&&(
href,'mailto:'.i M)},$n),':'.localtime),dd($_.p),"\n"if$_=escapeHTML i T;seek
F,0,0;*x=*textfield;put header(-charset=>'EUC-JP'),start_html({lang,ja,Style,
'b{color:#080}body{background:#eee}'}),dl(<F>),hr,startform,p(submit('書き込む'
),' 名前:',x(N),' E-mail:',x(M),br,textarea(T,'',6,70,1)),endform,end_html
>>130 での変更は HTML 的に正しくする為のものなんだけど
(文字コードや言語を指定するから化けずに済む)、そーゆーの
より「似せる」方を重視してるのかな?
140(1): 山崎渉 [(^^)sage] 03/04/20 05:57 ID:??? AAS
∧_∧
( ^^ )< ぬるぽ(^^)
141: 03/05/09 00:09 ID:seZLVSXV(1) AAS
∩(゚∀゚∩)age
142(1): 03/05/09 21:42 ID:??? AAS
えぇと、みんななんか面白そうなコトやってるね。
俺も参加しよう思ったけど…読めない所が多いや。
143: 03/05/10 00:35 ID:??? AAS
>>142
過疎スレだから、分からんトコは*自分で調べた上で*
適宜質問してくれれば良いかと。
144: 山崎渉 [(^^)] 03/05/22 02:04 ID:??? AAS
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
145(2): 03/05/28 05:53 ID:dphN6O/1(1) AAS
ポートスキャナー。
# portscan.pl
use Socket;$h=$ARGV[0];$p=--$ARGV[1];$e=$ARGV[2];$i=inet_aton($h)||die;print"ho
st $h\n\n";while($p++<$e){$f=1;for(1..2){$t=$f?"tcp":"udp";socket(S,PF_INET,
SOCK_STREAM,getprotobyname($t));print"$p $t\n"if connect(S,pack_sockaddr_in($p,
$i));close(S);$f=0}}
usage >peal portscan.pl [host] [start_port] [end_port]
ちなみに、エラーチェックもしてないし、socketらへんもかなり適当なので動かないかもしれますん。
そんときは自分で手を加えるなりして動くようにしてください。
146: 03/05/28 06:12 ID:u3FXwnkV(1) AAS
(´―`)y━~~タバコ代上がるのイヤー
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
外部リンク[html]:www.k-514.com
(´―`)y━~~タバコ代上がるのイヤー
147(1): 145 03/05/28 19:26 ID:MVa2hSnY(1) AAS
縮まった。
# portscan.pl
use Socket;$h=$ARGV[0];$p=--$ARGV[1];$i=inet_aton $h||die;print"host $h\n\n";
while(++$p<$ARGV[2]){$f=1;for(1..2){socket S,PF_INET,SOCK_STREAM,getprotobyname
($f?"tcp":"udp");print"$p $t\n"if connect S,pack_sockaddr_in($p,$i);close S;$f=
0}}
>>145と同じ理由で動かないかもしれますん。
これ以上縮まらないヨカソ…。
148: 03/05/28 20:05 ID:Edz5ugJ5(1) AAS
>>147
板違い
149: 145 03/05/28 21:50 ID:RXOOGbeu(1) AAS
言ってるそばから縮まった。
# portscan.pl
use Socket;@t=@ARGV;$p=--$t[1];$i=inet_aton $t[0]||die;print"host $t[0]\n\n";
while(++$p<$t[2]){$f=1;for(1..2){socket S,PF_INET,SOCK_STREAM,getprotobyname($f
?"tcp":"udp");print"$p $t\n"if connect S,pack_sockaddr_in($p,$i);close S;$f=0}}
150: 03/05/29 12:44 ID:??? AAS
use Socket;($h,$s,$e)=@ARGV;$i=inet_aton($h)||die;print"host $h\n\n";for$p($s..
$e){for('tcp','udp'){socket S,PF_INET,SOCK_STREAM,getprotobyname$_;print"$p $_
"if connect S,pack_sockaddr_in$p,$i;close S}}
151: 03/07/01 18:25 ID:??? AAS
#!/usr/local/bin/perl
print "Hello World!";
print "Hello World!";
print "Hello World!";
print "Hello World!";
print "Hello World!";
print "Hello World!";
152: 03/07/06 12:17 ID:??? AAS
お前ら!すごいですね
153: 山崎 渉 [(^^)] 03/07/15 11:13 ID:??? AA×

154: 03/07/24 09:35 ID:??? AAS
おもしろそう・・・
155(1): 山崎 渉 [(^^)sage] 03/08/02 02:38 ID:??? AAS
∧_∧
( ^^ )< ぬるぽ(^^)
156: ぼるじょあ ◆ySd1dMH5Gk [(^^)] 03/08/02 05:21 ID:??? AA×

157: 山崎 渉 [(^^)] 03/08/15 22:57 ID:??? AA×

158(1): 03/08/17 15:16 ID:??? AAS
山崎ばかりなのもナニなので kat2xhtml 更新。あと 10 byte ほどなんだが…。
$l='<a href="';sub a{"$l@_\">$a</a>"}sub p{"<span class=\"@_</span>"}while(<>){
($n,$m,$d,$_,$t,$")=split/[,\n]/;$.-1or$T=$t;$n=~m|<b>([^<]*)(</b>([^<]*))?|;$n
=($1&&p"n\">$1").($3&&p"m\">$3");$n=p qq|k" title="$m">$n|if$m.0;s/\x81\x97\x81
M/,/gx;s/\s+(target="\w*"|$)//g;s|\s*<br>|<br />|g;s/&(?!\w+;|\#\d+;)/&/g;(
($u,$a)=/^$l([^"]+)">([^<]+)/)?($_=$u=~s/~/%7E/g?a$u:$a=~/^(>){1,2}(\d+)/?a
"#R$2":$_):s/"/"/g for@r=split/($l[^"]+">[^<]+<\/a>)/;$A.="<dt>$. :<a id"
."=\"R$.\">$n :$d</a></dt><dd>@r</dd>\n"}open T,$/="$0.tmpl";$_=<T>;s/%(.)/${
$1}/g;print
・?xHHHH 形式の数値実体参照を諦め。
・テンプレートのファイル名を "$0.tmpl" に。
・説明やら入れたアーカイヴは 外部リンク:cm.xrea.cc に。
159: 03/08/17 15:19 ID:??? AAS
>>158
s/?xHHHH/&#xHHHH/;
160(1): 03/08/18 07:15 ID:??? AAS
ちょっと長くなったけど、初心者質問スレを荒らしている彼に捧げよう。(w
#--- br.p ---
package P;sub c{bless pop,pop}sub s{$_[0]->{s}}sub n{$_[0]->{n}}sub h{my($s,$c)
=@_;$c||return$s->{h};($s->{h}+=$c)>0or$s->{h}=0}sub b{my($s,$e)=@_;my@w=keys%{
$s->{w}};my$w=$w[int rand@w];print$s->n,' は ',$w," で攻撃!\n";my($d,$a)=@{$s->
{w}{$w}}{d,a};$d=(my$n=int rand 101)>$a?0:$n>$a/2?int($d/2)-$e->s:$n>$a/20?$d-
$e->s:$d;print$d<=0?"ミス!\n":($e->n,' に ',$d," ポイントのダメージ!\n");$e->h(
-$d)||print$e->n," を倒した!\n"}package main;sub p{splice@p,int rand@p,1}@p=map
P->c($_),@{do'./p.dat'};while(@p>1){my$o=p;my$d=p;print"\n",$o->n,':',$o->h,' '
,$d->n,':',$d->h,"\n";$o->b($d);push@p,$o;$d->h>0&&push@p,$d}print(shift(@p)->n
, " の 勝利!\n")
#--- p.dat ---
[{n=>'煽り',h=>400s=>10w=>{'キック'=>{d=>60a=>60},'パンチ'=>{d=>20a=>70},}}
,{n=>'荒らし',h=>300s=>0w=>{'キック'=>{d=>100a=>60},'パンチ'=>{d=>40a=>70}}
},{n=>'夏厨',h=>200s=>20w=>{'キック'=>{d=>80a=>90},'パンチ'=>{d=>10a=>100}}
}];
161: 03/08/18 12:36 ID:??? AAS
>>160
ワロタ
上下前次1-新書関写板覧索設栞歴
あと 291 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.020s