【Perl】掲示板を使ろう! (502レス)
【Perl】掲示板を使ろう! http://medaka.5ch.net/test/read.cgi/php/988890976/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
21: 名無しさん@お腹いっぱい。 [sageage] 2001/05/09(水) 20:46 ID:??? みんな死んでる........................................... http://medaka.5ch.net/test/read.cgi/php/988890976/21
22: 名無しさん@お腹いっぱい。 [0] 2001/05/09(水) 20:47 ID:??? 0 http://medaka.5ch.net/test/read.cgi/php/988890976/22
23: panton [sage] 2001/05/09(水) 22:30 ID:??? >>17 _gunzip氏 (248行目でしたが・・)確かにそうですね。修正します。 > ("バリューに改行が入っているデータは扱えない。"・・・とか) > 何か書こうかと思ったけれど・・・ちょっと後回しにします。 > #「配列、スカラーへの対応」とかはどうするのかなあ・・・と興味が。 うーん、考えどころです。 StorableとかFreezeThawとか使っちゃえば、必然的にそこらへん 全て解決するし、もっと言えば、メッセージオブジェクトとか 突っ込んじゃえばさらに楽だよなぁ・・・とか。 http://medaka.5ch.net/test/read.cgi/php/988890976/23
24: 名無しさん@お腹いっぱい。 [0sage] 2001/05/10(木) 17:06 ID:??? 皆さん忙しいんでしょうね http://medaka.5ch.net/test/read.cgi/php/988890976/24
25: age [age] 2001/05/18(金) 18:49 ID:??? age http://medaka.5ch.net/test/read.cgi/php/988890976/25
26: 名無しさん@お腹いっぱい。 [sage] 2001/05/19(土) 09:58 ID:??? そして誰もいなくなった http://medaka.5ch.net/test/read.cgi/php/988890976/26
27: age [] 2001/05/22(火) 17:48 ID:VQJfqVeI age http://medaka.5ch.net/test/read.cgi/php/988890976/27
28: 名無しさん@お腹いっぱい。 [0] 2001/06/01(金) 16:13 ID:??? 終わっちゃダメェ!!!! http://medaka.5ch.net/test/read.cgi/php/988890976/28
29: 名無しさん@お腹いっぱい。 [sage] 2001/06/02(土) 07:33 ID:??? 長らくご愛顧頂き誠にありがとうございました。 ===========終了=========== http://medaka.5ch.net/test/read.cgi/php/988890976/29
30: 名無しさん@お腹いっぱい。 [age] 2001/06/07(木) 14:41 ID:??? >>29 age http://medaka.5ch.net/test/read.cgi/php/988890976/30
31: 名無しさん@お腹いっぱい。 [sage] 2001/06/07(木) 15:35 ID:??? 気を取り直して =======================再開============================ http://medaka.5ch.net/test/read.cgi/php/988890976/31
32: 名無しさん@お腹いっぱい。 [sage] 2001/06/07(木) 16:01 ID:??? 特に2ch型とかにしなくてもいいから、とりあえず基本中の基本、 みたいなシンプルなヤツを誰か書いてくれんだろうか… Perl上手い人ほど、わざわざシンプルなのって書かないんだよね。 http://medaka.5ch.net/test/read.cgi/php/988890976/32
33: 名無しさん@お腹いっぱい。 [sage] 2001/06/07(木) 16:28 ID:??? いつぞやの七行BBS #!/usr/local/bin/perl %f=map{tr/+/ /;s/%(..)/pack("H2",$1)/eg;s/</&</;s/>/&>/;$_}split/[&=]/, $ENV{QUERY_STRING};$f{n}||="名無し";open F,"+<bbs.dat";flock F,2;$e= "$f{n} &>$f{m}<BR>\n"if($f{m});@e=($e,<F>)[0..20];seek F,0,0;print F @e; print"content-type: text/html\n\n<title>BBS</title><h1>BBS</h1><form action='bbs.cgi'><p>名前<input name=n value='$f{n}'><br>記事<input name=m size=50><br><input type=submit></p></form><hr><p>@e</p><hr>"; __END__ >>32 シンプルだぞ(笑) http://medaka.5ch.net/test/read.cgi/php/988890976/33
34: 名無しさん@お腹いっぱい。 [sage] 2001/06/07(木) 20:12 ID:??? >>33 そのスクリプトすごい好き。7行なのに名無し機能まである。 http://medaka.5ch.net/test/read.cgi/php/988890976/34
35: 名無しさん@お腹いっぱい。 [sage] 2001/06/07(木) 21:20 ID:??? >>33 元スレの25だけど、無駄なファイルアクセス避けるためには、 $e="$f{n} &>$f{m}<BR>\n"if($f{m});@e=($e,<F>)[0..20];seek F,0,0;print F @e; は、下みたいにしたほうがいいかもね。 @e=<F>;if($f{m}){seek F,0,0;print F @e=("$f{n} &>$f{m}<BR>\n",@e)[0..20]} http://medaka.5ch.net/test/read.cgi/php/988890976/35
36: 33 [sage] 2001/06/07(木) 21:53 ID:??? >>35 なるほど。発言があったときのみ書き込むわけですね。 ぢつは33=元スレの20だけど、こりゃ20原案25作成ですね。 フォームの解析なんてホント目から鱗でした。 マジ勉強になります。 http://medaka.5ch.net/test/read.cgi/php/988890976/36
37: 32 [0] 2001/06/07(木) 22:44 ID:??? >>33 それ、スゴーク好きなんだけど、もうちょっと何か…(;´ー`)y-~~ でも勉強になりました。 http://medaka.5ch.net/test/read.cgi/php/988890976/37
38: 名無しさん@お腹いっぱい。 [sage] 2001/06/07(木) 23:32 ID:??? Tiny BBSでいいじゃん? http://yasu.asuka.net/soft/tinybbs.html http://medaka.5ch.net/test/read.cgi/php/988890976/38
39: 名無しさん@お腹いっぱい。 [sage] 2001/06/09(土) 00:41 ID:??? なんか7行見て引いちゃったんだけどさ 漏れみたいな素人がminibbsパクッタのでもいいかい? http://medaka.5ch.net/test/read.cgi/php/988890976/39
40: 名無しさん@お腹いっぱい。 [0] 2001/06/09(土) 08:33 ID:??? >>38 誰か、Tiny BBSのソース上げておくれ。 http://medaka.5ch.net/test/read.cgi/php/988890976/40
41: 名無しさん@お腹いっぱい。 [sage] 2001/06/09(土) 09:49 ID:??? >>40 なんで?落とせないか? http://medaka.5ch.net/test/read.cgi/php/988890976/41
42: 名無しさん@お腹いっぱい。 [sage] 2001/06/09(土) 14:42 ID:??? mx使って認証してるのか? @以下のアドレスを@geocities.co.jpとかでDLしろよ http://medaka.5ch.net/test/read.cgi/php/988890976/42
43: 名無しさん@お腹いっぱい。 [sage] 2001/06/09(土) 16:10 ID:??? FTP ソフトで入れ。 http://medaka.5ch.net/test/read.cgi/php/988890976/43
44: 名無しさん@お腹いっぱい。 [妖怪シタタラズ] 2001/06/09(土) 16:39 ID:??? >>39 use strictな掲示板ならどんなんれもいいのれすー http://medaka.5ch.net/test/read.cgi/php/988890976/44
45: rubbish_lister [] 2001/06/11(月) 22:47 ID:oKTfyTH6 panton氏のIndexedFile.pmを見ましたが、いいですねぇ。 BBSを作るのがかなり楽になりそうです。 恩恵に預かるだけでは良くはならないので、 ソース中で幾つか気になった点を書いておきます。 * line 154 これは sub articles{ return @{ $_[0]->{_idxlist} } } でいいのではないでしょうか。 * IO::File IO::Fileはかなり大きいので使わずに済ませてもいいのでは? CGIスクリプトとしての動作が前提なので、軽くしてまずいという事は無いかと。 * "$_" 気付いておられると思いますが、 所々暗黙の$_を使用していますね。 これもついでに。 http://medaka.5ch.net/test/read.cgi/php/988890976/45
46: 名無しさん@お腹いっぱい。 [sage] 2001/06/11(月) 23:13 ID:??? >>45 素人&場違いで悪いんだけど $_って駄目なの? http://medaka.5ch.net/test/read.cgi/php/988890976/46
47: rubbish_lister [] 2001/06/11(月) 23:30 ID:oKTfyTH6 >>46 いや、$_がダメってことは無いですよ。 ただ使うならばlocal宣言して欲しい…ということです。 # 消えるとまずいデータは極力$_に入れないようにしてはいますが http://medaka.5ch.net/test/read.cgi/php/988890976/47
48: 46 [sage] 2001/06/12(火) 00:23 ID:??? >>47 そういう意味なんすか サンクス http://medaka.5ch.net/test/read.cgi/php/988890976/48
49: 初期不良 [] 2001/06/12(火) 01:00 ID:MAetbv9U >>47 確かにそれ関係でばぐった時はちょっとやっかいだった http://medaka.5ch.net/test/read.cgi/php/988890976/49
50: 名無しさん@お腹いっぱい。 [0] 2001/06/20(水) 02:05 ID:??? ほういち氏は何処行った? http://medaka.5ch.net/test/read.cgi/php/988890976/50
51: ウェブ作成初心者 [] 2001/06/27(水) 00:45 ID:DrGg5Duk PERLなんて奇特なもんしりゃーせんです、ハイ。 知ってるのは“REMEMBER PEARL HABOR”くらいッス。 www.tripod.lycos.comとかはどうやって ウェブサイトや掲示板を作るかよくわかりません。 とりあえずトライポッドに無料サイトを開設して掲示板を設置したいのですが、 ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。 メモ帳でcgiファイル?を作ってアップする?とか意味がわかるようでわからないです。 http://medaka.5ch.net/test/read.cgi/php/988890976/51
52: 名無しさん@お腹いっぱい。 [sage] 2001/06/27(水) 09:08 ID:??? >>51 死ね。 http://medaka.5ch.net/test/read.cgi/php/988890976/52
53: 名無しさん@お腹いっぱい。 [sage] 2001/06/27(水) 09:11 ID:??? >ウェブ作成関連のプログラミングにめちゃ詳しい方教えてください。 プ http://medaka.5ch.net/test/read.cgi/php/988890976/53
54: 名無しさん@お腹いっぱい。 [sage] 2001/06/27(水) 13:30 ID:??? >>51 知らなかったら勉強しろ。 ここでも逝け。 ttp://wakusei.cplaza.ne.jp/twn/ ネタニマジレスカナ http://medaka.5ch.net/test/read.cgi/php/988890976/54
55: 名無しさん@お腹いっぱい。 [] 2001/06/29(金) 02:23 ID:4xodowQE いま掲示版作っています。 データファイルをCSVに使用と思ってるのですが、CSVって、クオーテーションマークだけをエスケープすれば委員ですよね。 あと、CRとかLFとかもエスケープしたいのですが、どうすればいいですか・? <br>に変換するにはあんまり美しくない気がして。 http://medaka.5ch.net/test/read.cgi/php/988890976/55
56: 名無しさん@お腹いっぱい。 [] 2001/06/29(金) 02:33 ID:4xodowQE うん http://medaka.5ch.net/test/read.cgi/php/988890976/56
57: 名無しさん@お腹いっぱい。 [sage] 2001/06/29(金) 02:37 ID:??? >>55 パーサの仕様によっては、カンマもエスケープの必要有りでは? http://medaka.5ch.net/test/read.cgi/php/988890976/57
58: 名無しさん@お腹いっぱい。 [] 2001/06/29(金) 11:56 ID:HUBABICM >>55 CRLFも、クオーテーションマークでくくれば、 エスケープの必要なし。 http://medaka.5ch.net/test/read.cgi/php/988890976/58
59: 58 [] 2001/06/29(金) 11:57 ID:HUBABICM 惜しい、もうすこしでIDがBASICだったのに… http://medaka.5ch.net/test/read.cgi/php/988890976/59
60: 名無しさん@お腹いっぱい。 [sage] 2001/06/29(金) 14:32 ID:??? >>58 ただのBASICではなくてHu-BASICだというところが泣かせる。 http://medaka.5ch.net/test/read.cgi/php/988890976/60
61: 名無しさん@お腹いっぱい。 [0] 2001/06/29(金) 18:52 ID:??? >>58 改行はだめだろ、レコード区切りだから ところで、CSVの仕様書ってどこかにあるの? http://medaka.5ch.net/test/read.cgi/php/988890976/61
62: 名無しさん@お腹いっぱい。 [] 2001/06/30(土) 20:10 ID:rUTTiUww CSVについて " " で囲みさえすれば、エスケープする必要があるのは、" 自身だけではないのでしょうか。 http://medaka.5ch.net/test/read.cgi/php/988890976/62
63: 名無しさん@お腹いっぱい。 [0] 2001/06/30(土) 20:18 ID:??? 掲示板のデータファイルを考えているのですね。 CSVのモジュールを使えば、そんなこと考えなくてもいいのでは。 http://medaka.5ch.net/test/read.cgi/php/988890976/63
64: あぼーん [あぼーん] あぼーん http://medaka.5ch.net/test/read.cgi/php/988890976/64
65: 名無しさん@お腹いっぱい。 [] 2001/07/01(日) 09:11 ID:Q4XVcLok uzee http://medaka.5ch.net/test/read.cgi/php/988890976/65
66: panton [] 2001/07/04(水) 04:10 ID:iYqhBR52 >>45 rubbish_lister様 遅レスで申し訳ないです。 > * line 154 > これは > sub articles{ return @{ $_[0]->{_idxlist} } } > でいいのではないでしょうか。 あれ?こうすると、配列でなくリストで返されて、スカラーコンテキストだと、 採用されるのは要素数ではなく最後の要素になっちゃうと思ったんですけど、 違うんですね。勉強になりました。 オーバーヘッド的にはどうなんでしょう? 挙動から予想すると、配列全部ではなく、 要素数が帰ってるみたいなので、大丈夫なんでしょうか? IO:Fileはそのとおりです。 以前TODOに入れてたような気がしたけど、ないですね。TODOで。 $_ は個人的に混乱しない限り使わせていただきます。 Perl大好きっ子なんで。 http://medaka.5ch.net/test/read.cgi/php/988890976/66
67: 名無しさん@お腹いっぱい。 [age] 2001/07/06(金) 22:51 ID:??? ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (,,・∀・) < さっぱりだよ。 〜(___ノ \_______________ http://medaka.5ch.net/test/read.cgi/php/988890976/67
68: 名無しさん@お腹いっぱい。 [ ] 2001/07/08(日) 17:52 ID:??? 初歩的な質問ですみませんが、 データファイルって、読み込みの時にもロックした方がいいですか? それから、レスを多次元配列に入れてから書き出したいのですが、 配列全体のサイズが100KBとかになっても問題ないですか http://medaka.5ch.net/test/read.cgi/php/988890976/68
69: 名無しさん@お腹いっぱい。 [] 2001/07/09(月) 00:38 ID:vYQpj6T6 >>68 おれはflockが使えるときは読み込みのときでも flock(FILE, LOCK_SH) ってやってるよ。 ただしsymlinkを使ったりする場合は読み込みではロックしない。 配列サイズは、サーバのメモリ容量とアクセス頻度を考慮して 判断すべきだから一概にいえないけど、 うちの環境では100KBならまず気にしない。1MBだと気にするかも。 http://medaka.5ch.net/test/read.cgi/php/988890976/69
70: 名無しさん@お腹いっぱい。 [] 2001/07/09(月) 10:12 ID:8Wkoq3g6 >69 気にしてください、お願いします http://medaka.5ch.net/test/read.cgi/php/988890976/70
71: 名無しさん@お腹いっぱい。 [sage] 2001/07/09(月) 10:21 ID:??? 専用鯖なんじゃないの? 共用鯖だったら締め頃したくなるところだが http://medaka.5ch.net/test/read.cgi/php/988890976/71
72: 名無しさん@お腹いっぱい。 [ ] 2001/07/09(月) 10:34 ID:??? >>70 そっか、そうすると たとえばデータファイルで100行分、まあ、レス100を表示するとすると、 データファールから1行読み込んで、書き出し、1行読み込んで書き出し みたいにするのが現実的デスカ。 たとえばスレッドID、はじめのレス番号、最後のレス番号を与えると、 そのレスの内容を配列で返す。みたいな関数を作って、というのが楽そうだったのだけど、 あまりおすすめできないと言うことですね。 http://medaka.5ch.net/test/read.cgi/php/988890976/72
73: 名無しさん@お腹いっぱい。 [0] 2001/07/09(月) 11:06 ID:??? そうすると、>>69はファイルロックの話も含めて、ネタか? http://medaka.5ch.net/test/read.cgi/php/988890976/73
74: 名無しさん@お腹いっぱい。 [ ] 2001/07/10(火) 22:56 ID:??? >>73 ファイルロックは必要。しないとログファイル壊れるよ。 http://medaka.5ch.net/test/read.cgi/php/988890976/74
75: 名無しさん@お腹いっぱい。 [sage] 2001/07/10(火) 23:59 ID:??? 更新時に、 lock 更新対象読み込み 更新対象変更 更新対象書き込み unlock すれば、壊れないよ。 ただ、更新中に読む奴がいたら表示は狂う。 いちばんいいのは、全部一時ファイルに書き出して一気にrename。 これなら事実上ほとんど表示も狂わない。 ただ、読み込みアクセスが多いと更新失敗する確率は高くなるけど。 http://medaka.5ch.net/test/read.cgi/php/988890976/75
76: panton [] 2001/07/14(土) 06:17 ID:8g/6IMoE オヒザシブリデゴザイマス IndexedFile.pm を更新しました。 http://www.panton.f2s.com/bbs/lib/IndexedFile.pm http://www.panton.f2s.com/bbs/lib/IndexedFile.html IO::Fileの使用廃止と、色々バグ修正があります。 前のバージョンには重大なバグがありました。 見つからなかったってことは、全然使われてねーんだな。 っと思って、手抜きテスト用ボードなんか用意してみました。 http://www.panton.f2s.com/bbs/sbbs.txt http://www.panton.f2s.com/bbs/sbbs.txt (ソース) たいしてテストしてないのでまだバグあるでしょう、・・見つけてよーん。 http://medaka.5ch.net/test/read.cgi/php/988890976/76
77: panton [] 2001/07/14(土) 06:19 ID:8g/6IMoE ぶっ、やっちまった。 http://www.panton.f2s.com/bbs/sbbs.cgi テスト用ボードはこちらでございます。 http://medaka.5ch.net/test/read.cgi/php/988890976/77
78: _gunzip [ぺrlうせr@あねt。ね。jp] 2001/07/14(土) 08:49 ID:??? では二つ三つ.......。 -------------------------- キー名に英数字以外のものが含まれているとおかしくなりますね。 ("@threads"とか"perl-user"とか。) 196行目の >my %hash = ('DUMMY', split /^(\w+?):/m, readline($self->_dathandle)); を my %hash = ('DUMMY', split /^(.+?):/m, readline($self->_dathandle)); にすれば回避は出来ますが...。 -------------------------- modify_row()使用時、更新されたデータは、 データファイルの末尾に追加+インデックス更新されるわけですが、 頻繁に同じ項目を更新するような場合、ファイルの肥大化が問題にならないかな....。 例えば、掲示板のスレッド毎に情報をハッシュの形で格納してある場合 %thread = ( count => 77, #投稿数 subject => "【Perl】掲示板を使ろう!", key => 988890976, server => "http://corn.2ch.net/", dir => "php" ); 投稿がある→そのスレッドの情報を取得( get_by_id() )→(何らかの処理) →投稿数をインクリメント→スレッド情報更新( modify_row() ) Ex. $thread = $logfile->get_by_id($id); $thread->{ count }++; $logfile->modify_row($id, $thread); とすると、投稿の度にハッシュ$threadの内容は末尾に追加されるので (スレッドの情報ログのサイズ) = ( (スレッドの情報サイズ) * (投稿回数) ) * (スレッド数) になってしまいますね。 ・・・と、ここまで書いたときにsynchronize()を思い出した....。 例えば、スクリプト側で if( $thread->{ count }++ % 5 ){ $logfile->synchronize(); } としておけば問題ないね。 いくらかのパディングを余分に取っておいて、 更新された情報が元の場所に収まりそうならそのまま上書きし、 無理なら末尾に回す、とするのもイイかもかも。 http://medaka.5ch.net/test/read.cgi/php/988890976/78
79: _gunzip [p_e_r_l_u_s_e_r] 2001/07/14(土) 08:49 ID:??? あと、198行目の >chomp $hash{$_} foreach keys %hash; は、スライスで chomp @hash{ keys %hash }; と書けたりします。(参考までに) http://medaka.5ch.net/test/read.cgi/php/988890976/79
80: 名無しさん@お腹いっぱい。 [いちちちちt] 2001/07/15(日) 07:23 ID:??? あっげ http://medaka.5ch.net/test/read.cgi/php/988890976/80
81: 名無しさん@お腹いっぱい。 [sage] 2001/07/16(月) 17:17 ID:??? はじめまして。現在機能優先で掲示板を作っていて、コードの 効率は後回し中なのですが、いくつか質問があります。 ・一般ではOpenでテキストを読み書きするのが多いようですが、 (MINIBBS程度の規模でも)TieやDBOPENを使ったものが見かけないのは なぜですか?負荷について問題があるのでしょうか? ・発言データに関して、追加書き込みモードを基本にしてもファイルロックは 必要でしょうか?またどの程度の堅牢性を期待すべきでしょうか? ・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と していますが、While(<FILE>)やその他の方法のうち、お勧め なのはどれでしょうか?また、Seekを使った読み出しについて 教えてくださいませんか? http://medaka.5ch.net/test/read.cgi/php/988890976/81
82: panton [] 2001/07/16(月) 19:29 ID:YjhPdxYw >>81 ageで書いてもいいんじゃないかと思うけどなんでsage? > ・TieやDBOPENを使ったものが見かけないのはなぜですか? > 負荷について問題があるのでしょうか 掲示板の場合リニアなデータ構造が多いのでハッシュがメインの タイは不向きといえば不向き。配列を結びつける事も出来るが、 インターフェイスが不完全。 > ・追加書き込みモードを基本にしてもファイルロックは > 必要でしょうか? 必要です。堅牢性についてはデータの重要性によります。 > ・読み出しに関して、基本的なスクリプトでは@LINE=<FILE>と > していますが、While(<FILE>)やその他の方法のうち、お勧め > なのはどれでしょうか? >>69あたりからを読んでください。 seekに関しては、固定長なら使えるけど、掲示板のように データ長が不定なデータだと不向き。 そこら辺を解決するためにIndexedFile.pmを作ってるんですが・・・ http://medaka.5ch.net/test/read.cgi/php/988890976/82
83: 名無しさん@お腹いっぱい。 [] 2001/07/16(月) 19:58 ID:SlpU2cdo >>82 age忘れです。 リニアな構造ということですが、発言IDやTIMEをキーにして 残りは従来のままスカラーでもよいと思ったんですが、、、。 負荷についてわからないというのは、ハッシュでは数百発言とも なると負荷がかかるのかとか、あるいは値のサイズによって 負荷が変わるのかとかも考えたのですが。 追加書き込みモードについては、一般に恐れているのは 全部読み出し>退避+追加>全部書き出しの過程での全データ 消失だと思うので、追加書き込みでの危険性があまり認識 できないのです。 http://medaka.5ch.net/test/read.cgi/php/988890976/83
84: panton [] 2001/07/17(火) 15:17 ID:/BDSxh5c >>83 リニアというのは、掲示板は発言の並びに順番があるということです。 TIMEなどをキーにしてkeysでsortなんかをすることも出来ますが、 DBMの起動オーバーヘッドなんかを考えると、 あえて使う必要も無いかなという程度です。 記事数や値のサイズによる負荷の増加は気にするほどではないと思いますが、 よく知りません。 ファイルロックについては、いろんなところで調べてみるといいと思います。 追記モードでも同時に起こると、ファイルの同じ位置に書き込もうとして データがおかしくなります。 http://medaka.5ch.net/test/read.cgi/php/988890976/84
85: 名無しさん@お腹いっぱい。 [] 2001/07/17(火) 17:07 ID:sUEgTyfs >>84 ありがとうございます。 あと他にも、疑問が生じたときに、理由は自分で考えてみたのですが これでいいのでしょうか? while (<FILE>)よりも@line <FILE>のほうが、読み込み時に 早くcloseを行うのでよさげ ・・・・>読み込み時は共有可、書き込み時はどっちみちロック ANHTTP環境ではflock不可 ・・・・>Renameロックかflockコメント化で我慢 全読み>全書き込みvs追加モード ・・・・>ファイルアクセスより管理性重視? レスポンスお願いします。 http://medaka.5ch.net/test/read.cgi/php/988890976/85
86: 名無しさん@お腹いっぱい。 [0] 2001/07/17(火) 19:00 ID:??? 特定の行を抜き出すとき、 $line = (<FILE>)[5]; っていう方法はどうなんですかね。 http://medaka.5ch.net/test/read.cgi/php/988890976/86
87: 名無しさん@お腹いっぱい。 [] 2001/07/17(火) 19:12 ID:HRgjK2II >>86 それは最悪でしょう。 そいういうものこそDB_FileのDB_RECNOを使うほうが良いと思いますがね。 http://medaka.5ch.net/test/read.cgi/php/988890976/87
88: 名無しさん@お腹いっぱい。 [sage] 2001/07/17(火) 19:13 ID:??? なして最悪? http://medaka.5ch.net/test/read.cgi/php/988890976/88
89: 名無しさん@お腹いっぱい。 [sage] 2001/07/17(火) 22:22 ID:??? >>85 > while (<FILE>)よりも@line <FILE>のほうが なんでそんな結論になったのか知らないけど、普通ダメ。過去ログ読めよ。 > ANHTTP環境ではflock不可 HTTPDとflockは関係ありません。 > 全読み>全書き込みvs追加モード 質問の意味がわかりません。 なんか基本的なところがわかってないんじゃない? CGI-MLとかの過去ログでも漁って勉強してきましょう。 >>88 全部読み込んでから[5]だけ残して他は捨てるっていう動作。 http://medaka.5ch.net/test/read.cgi/php/988890976/89
90: 名無しさん@お腹いっぱい。 [sage] 2001/07/18(水) 01:34 ID:??? >>85 > while (<FILE>)よりも@line <FILE>のほうが、読み込み時に > 早くcloseを行うのでよさげ いくらclose()したって、ねぇ…。 89さんの言う通り、避けるべきかと。 「負荷」とか「メモリ」という言葉を(以下略 http://medaka.5ch.net/test/read.cgi/php/988890976/90
91: 名無しさん@お腹いっぱい。 [] 2001/07/18(水) 13:28 ID:aJuOjafs >>90 それは今になってみたら分かります。が、 初心者はこんなことを思っていたという、、、、。 >> ANHTTP環境ではflock不可 >HTTPDとflockは関係ありません。 御免なさい、WIN95+ActivePerl+〜というべきでした。 >> 全読み>全書き込みvs追加モード >質問の意味がわかりません。 何で追加モードがあるのに、わざわざ全読み全書き込みするのか、という ことです。 http://medaka.5ch.net/test/read.cgi/php/988890976/91
92: 名無しさん@お腹いっぱい。 [sage] 2001/07/18(水) 19:10 ID:??? >>91 つまり貴方には「全読み込み+全書き込み」と「追加書き」が同じ様に思えると? 正直ワケ分かりませんが。 http://medaka.5ch.net/test/read.cgi/php/988890976/92
93: 名無しさん@お腹いっぱい。 [sage] 2001/07/19(木) 04:20 ID:??? >>91 追加は追加。増える一方。 書き換えも行わない。 全読み全書きは、中途での処理の可能性を残している。 本当に全部書いてるのか? 加えて、書き換えてるんなら同じじゃない。 実際にテストして考えてから書き込んでくれ。 http://medaka.5ch.net/test/read.cgi/php/988890976/93
94: 名無しさん@お腹いっぱい。 [sage] 2001/07/19(木) 04:23 ID:??? >>91 flockは evalかけろ。 http://medaka.5ch.net/test/read.cgi/php/988890976/94
95: 名無しさん@お腹いっぱい。 [sage] 2001/07/19(木) 13:12 ID:??? (既存の掲示板スクリプトは)何で追加モードが・・・ ってこと? そういうのばかりでもないし、そうする必要があるのかもしれないし、 ただ馬鹿なだけかもしれない。 どっちにしろ他人のスクリプトなんてどうで良い。 http://medaka.5ch.net/test/read.cgi/php/988890976/95
96: 名無しさん@お腹いっぱい。 [sage] 2001/07/19(木) 15:48 ID:??? >>94 flockはevalかけるな。 http://medaka.5ch.net/test/read.cgi/php/988890976/96
97: 名無しさん@お腹いっぱい。 [____________________] 2001/07/19(木) 17:50 ID:??? . http://medaka.5ch.net/test/read.cgi/php/988890976/97
98: 名無しさん@お腹いっぱい。 [] 2001/07/19(木) 19:13 ID:FUSlV7zU >>95 納得。 レス感謝 あとはレス行為に感謝 http://medaka.5ch.net/test/read.cgi/php/988890976/98
99: 名無しさん@お腹いっぱい。 [] 2001/07/19(木) 21:37 ID:1tfXBWXc >>96 >>94 どっちなの http://medaka.5ch.net/test/read.cgi/php/988890976/99
100: 名無しさん@お腹いっぱい。 [sage] 2001/07/19(木) 21:44 ID:??? eval{flock(FILE,2)}; eval{flock(FILE,8)}; flockはevalをかければ非対応の環境でも致命的エラーにならない。 http://medaka.5ch.net/test/read.cgi/php/988890976/100
101: 名無しさん@お腹いっぱい。 [sage] 2001/07/19(木) 21:54 ID:??? そんな貴方に set PERL5OPT=-m-flock flock.pmは自分で用意してね♥ http://medaka.5ch.net/test/read.cgi/php/988890976/101
102: 名無しさん@お腹いっぱい。 [sage] 2001/07/20(金) 00:21 ID:??? >>100 その代わり実は効いていないのに気がつかない可能性がある http://medaka.5ch.net/test/read.cgi/php/988890976/102
103: 名無しさん@お腹いっぱい。 [] 2001/07/20(金) 01:19 ID:AwYw1thE #!/usr/local/bin/perl use CGI $a=new CGI;print"Content-type: text/html\n\n<form action=n.cgi>"; print"<input name=n><input name=t>\n";$n=$a->param('n'),$t=$a->param('t'); if($t){$t=~s/,|<|>|:/*/g;if(!$n){$n="名無しさん@お腹いっぱい";}open(I,">>y"),print I"$n,$t\n";} open(I,"y"),@I=<I>;for($i=$#i;$i>$#i-10;$i--){($j,$k)=split(/\,/,$I[$i]),print"<hr>$j: $k";} 5行 http://medaka.5ch.net/test/read.cgi/php/988890976/103
104: 103 [] 2001/07/20(金) 01:29 ID:AwYw1thE 一時間で書いたから最低なソースだ。 素人丸出し。 でも一応動く。 動けばいいよね。 だめ? http://medaka.5ch.net/test/read.cgi/php/988890976/104
105: 名無しさん@お腹いっぱい。 [] 2001/07/20(金) 01:32 ID:WE74UShE ? http://medaka.5ch.net/test/read.cgi/php/988890976/105
106: 名無しさん@お腹いっぱい。 [] 2001/07/20(金) 01:34 ID:WE74UShE あっ 掲示板か ゴメ http://medaka.5ch.net/test/read.cgi/php/988890976/106
107: わ、 [] 2001/07/20(金) 03:36 ID:O.8zSDuM age http://medaka.5ch.net/test/read.cgi/php/988890976/107
108: 103 [] 2001/07/20(金) 21:47 ID:AwYw1thE #!/usr/local/bin/perl use CGI $a=new CGI;print$a->header,"<form action=n.cgi><input name=b><br><input name=c>";($b,$c)=($a->param('b'),$a->param('c')); if($c){$c=~s/<|>|:/*/g;if(!$b){$b="名無しさん";}open(A,">>d"); print A"<hr>$b:$c\n";}open(A,"d");@e=<A>;@f=reverse(@e);print @f; 少しだけ短くなったかな? http://medaka.5ch.net/test/read.cgi/php/988890976/108
109: 103 = 108 [] 2001/07/20(金) 22:30 ID:AwYw1thE なんかアドバイスきぼーん。 もっと短くしたいです。 http://medaka.5ch.net/test/read.cgi/php/988890976/109
110: 名無しさん@お腹いっぱい。 [sage] 2001/07/20(金) 22:33 ID:??? CGI.pmをつかって「もっと短く」と言われてもなぁ…と思ってしまう。 http://medaka.5ch.net/test/read.cgi/php/988890976/110
111: 103 [sage] 2001/07/21(土) 10:50 ID:??? #!/usr/local/bin/perl use CGI $a=new CGI;print$a->header,"<form><input name=b><br><input name=c>"; ($b,$c)=($a->param('b'),$a->param('c'));if($c){$c=~s/<|>|:/*/g;if(!$b){$b="名無し";} open(A,">>d");print A"<hr>$b:$c\n";}open(A,"d");@e=<A>;@f=reverse(@e);print @f; <form action=n.cgi> => <form> #actionはデフォルトで自分自身らしい。 名無しさん => 名無し #これはどうでもいいか・・・。 これで横に長いが何とか4行 http://medaka.5ch.net/test/read.cgi/php/988890976/111
112: JAPU [sage] 2001/07/21(土) 16:18 ID:??? どうでもよい話かもしれないが、actionは#REQUIREDです。 http://medaka.5ch.net/test/read.cgi/php/988890976/112
113: 名無しさん@お腹いっぱい。 [sage] 2001/07/21(土) 17:04 ID:??? >>112 DOCTYPE宣言がない以上ほんとにどうでもよい話ですね。 http://medaka.5ch.net/test/read.cgi/php/988890976/113
114: 103 [sage] 2001/07/21(土) 20:30 ID:??? #!/usr/local/bin/perl use CGI $a=new CGI;print$a->header,"<form><input name=b>";$b=$a->param('b'); if($b){$b=~s/</</g;open(A,">>c");print A"$b";}open(A,"c");print<A>; これ以上はむりかな。 だんだん飽きてきた。 つーかこんなのは掲示板じゃない。 http://medaka.5ch.net/test/read.cgi/php/988890976/114
115: 名無しさん@お腹いっぱい。 [] 2001/07/26(木) 11:54 ID:.3Y7gM7s 何で止まっちゃったの? http://medaka.5ch.net/test/read.cgi/php/988890976/115
116: JAPU [AyuMoe@REMOVE-THIS-PART.JAPU.ORG] 2001/07/26(木) 13:52 ID:??? >>113 一応補足しておくと、action が #REQUIRED である限りクライアントによってはうまく動作しないことがあるかも知れないという意味を含めていました。 http://medaka.5ch.net/test/read.cgi/php/988890976/116
117: 名無しさん@お腹いっぱい。 [] 2001/07/27(金) 20:56 ID:6tE5j.uU JAPU死ね http://medaka.5ch.net/test/read.cgi/php/988890976/117
118: 名無しさん@お腹いっぱい。 [sage] 2001/07/27(金) 21:47 ID:??? >>117 いきなりなんなんだチミわ http://medaka.5ch.net/test/read.cgi/php/988890976/118
119: 名無しさん@お腹いっぱい。 [ ] 2001/07/27(金) 21:48 ID:??? JAPUさん、負けないで。 http://medaka.5ch.net/test/read.cgi/php/988890976/119
120: 名無しさん@お腹いっぱい。 [sage] 2001/07/27(金) 22:43 ID:??? >>118 ただの夏房だから放置が吉。 http://medaka.5ch.net/test/read.cgi/php/988890976/120
121: panton [] 2001/08/19(日) 03:50 ID:Mz6GQnDY 沈みすぎなのでアゲ。 IndexFile.pm改め、IxFile.pmを作りました。 ハッシュだけでなく配列やスカラなどにも対応。 データ構造が変わったので、IndexedFile.pm とはデータ互換性なしです。 詳しくは、 http://www.panton.f2s.com/bbs/lib/IxFile.html http://www.panton.f2s.com/bbs/IxFile.tar.gz (ブツ) http://www.panton.f2s.com/bbs/sbbs.cgi (テスト用掲示板) http://medaka.5ch.net/test/read.cgi/php/988890976/121
122: 名無しさん@お腹いっぱい。 [] 2001/08/24(金) 05:23 ID:DAq2T8i2 何気にVerアプ期待してまっせ http://medaka.5ch.net/test/read.cgi/php/988890976/122
123: 名無しさん@お腹いっぱい。 [0] 2001/08/24(金) 17:32 ID:??? http://script.lovely.to/bbs/infolng.cgi?print+200108/01080035.txt ほういち氏発見!連行せよ。 http://medaka.5ch.net/test/read.cgi/php/988890976/123
124: xx [xx] 2001/08/24(金) 17:38 ID:??? xxx http://medaka.5ch.net/test/read.cgi/php/988890976/124
125: 名無しさん@お腹いっぱい。 [sage ] 2001/08/24(金) 18:02 ID:??? あ、ホントだ (^^ 開発に疲れちゃったんだろーなー http://medaka.5ch.net/test/read.cgi/php/988890976/125
126: 名無しさん@お腹いっぱい。 [sage] 2001/08/24(金) 19:48 ID:??? >>ほういち氏 八月半ばに他のQ&A-BBSでも見かけたよ。 でも2chにはこない…。 http://medaka.5ch.net/test/read.cgi/php/988890976/126
127: 名無しさん@お腹いっぱい。 [] 01/09/07 18:48 ID:bc3oxQQc 定期age http://medaka.5ch.net/test/read.cgi/php/988890976/127
128: 名無しさん@お腹いっぱい。 [sage] 01/09/08 02:44 ID:??? タイトルのtypo発見した、ちょっとトクした気分だ。。。 http://medaka.5ch.net/test/read.cgi/php/988890976/128
129: 名無しさん@お腹いっぱい。 [] 01/09/10 19:41 ID:72uN3czc use base 'IxFile';で継承すると 殆どのフィールドを継承できない(フィールド名が_で始まっている為)のですが、 それは仕様ですか? http://medaka.5ch.net/test/read.cgi/php/988890976/129
130: panton [age] 01/09/10 20:07 ID:??? お、意外にも使おうとしている方が・・・ 仕様と言えば仕様ですね。 お好みで適当に変えちゃってください。 ただ、今全面的に仕様変更考えてるので微妙です。 特に、インデックスの内部保持方法とその保存形式、 ハッシュや配列へのTieインターフェイスとかいろいろ。 仕事忙しいのでいつになるかわからないけど・・・ なんか意見あったら言ってください。 http://medaka.5ch.net/test/read.cgi/php/988890976/130
131: 名無しさん@お腹いっぱい。 [sage] 01/09/10 21:52 ID:??? ナルホド。 弄り始めたばかりですし、特に今のところ意見は無いです。 応援してますんで頑張ってください。 http://medaka.5ch.net/test/read.cgi/php/988890976/131
132: 名無しさん@お腹いっぱい。 [] 01/09/12 16:10 ID:Hityt.0Q age http://medaka.5ch.net/test/read.cgi/php/988890976/132
133: 名無しさん@お腹いっぱい。 [] 01/10/13 06:53 ID:WnJyL/5M あげとく。もう捨てられたスレなのか? http://medaka.5ch.net/test/read.cgi/php/988890976/133
134: 名無しさん@お腹いっぱい。 [sage] 01/10/13 15:25 ID:??? 「〜を作ろう」っていうスレで何かが完成した験しは全然無いな。 http://medaka.5ch.net/test/read.cgi/php/988890976/134
135: 名無しさん@お腹いっぱい。 [sage] 01/10/13 15:29 ID:??? # IxFile拡張 # IxFIle::clear - IxFileデータベースをクリアする # $status = clear $ixf; sub IxFile::clear{ my IxFile $self = shift; $self->_initialize(2); $self->{_pointer} = 0; $self->{_stat} = 0; $self->{_idxlist} = []; $self->{_idxhash} = {}; my $idx_ok = truncate $self->_idxhandle, 0; my $dat_ok = truncate $self->_dathandle, 0; return $idx_ok && $dat_ok; } http://medaka.5ch.net/test/read.cgi/php/988890976/135
136: panton [] 01/10/13 20:32 ID:WnJyL/5M >>135さん ありがとうございます。clear メソッドはあったほうが良いですね。 マージさせていただいて良いですか? 関係ない話ですけど、 Apache::AntiSpam::HTMLEncodeを見てて、 メールアドレスの一部分だけでもHTML Entitiesに変換すれば、 ロボットのアドレス収集対策にかなり有効なんじゃないかと思いました。 たとえば、?anton@f2s.com とかみたいに。 もっとも、HTML Entitiesを解釈するロボットがあると元も子も無いけど。 http://medaka.5ch.net/test/read.cgi/php/988890976/136
137: panton [sage] 01/10/13 20:36 ID:??? あれ、&#112;anton って書いたつもりだったのに・・ bbs.cgiの仕様変わったのかな? てすと: & > < http://medaka.5ch.net/test/read.cgi/php/988890976/137
138: 135 [sage] 01/10/13 20:51 ID:??? > マージ そのつもりで書いたので遠慮なくどーぞ。 > アドレス収集ロボ対策 JAPUさんが会社でやってますね。 ってあまり宣伝しすぎると効果が無くなるんでしょうけど。 http://medaka.5ch.net/test/read.cgi/php/988890976/138
139: panton [sage] 01/10/13 21:05 ID:??? s/&#[\d;]*/?/g って感じかな。 >>138 ありがとうございます。 ロボット対策> あら、ほんとですね。さすが。<- JAPUさん http://medaka.5ch.net/test/read.cgi/php/988890976/139
140: 名無しさん@お腹いっぱい。 [あげ〜〜] 01/10/31 23:12 ID:??? このスレ終わっちゃったのカー (゚д゚lll) テキストに飽きてきたから、使ってみるう http://medaka.5ch.net/test/read.cgi/php/988890976/140
141: 名無しさん@お腹いっぱい。 [] 01/11/22 15:56 ID:GCw1giJk 終わっちゃったんですか? http://medaka.5ch.net/test/read.cgi/php/988890976/141
142: panton [sage] 01/11/22 17:15 ID:??? おれはいますよ。すんません。 仕事に殺されています。<-言い訳。 http://medaka.5ch.net/test/read.cgi/php/988890976/142
143: 名無しさん@お腹いっぱい。 [sage] 01/11/22 22:31 ID:??? IxFileの配列版File::Arrayを構想中。 http://medaka.5ch.net/test/read.cgi/php/988890976/143
144: 名無しさん@お腹いっぱい。 [sage] 01/11/30 03:03 ID:??? >>45 > * IO::File > IO::Fileはかなり大きいので使わずに済ませてもいいのでは? 根拠は?たかだか3889バイトですが? # と、Google検索でここにきたのでついでに書き込むテスト http://medaka.5ch.net/test/read.cgi/php/988890976/144
145: 名無しさん@お腹いっぱい。 [sage] 01/11/30 03:04 ID:??? しかもコメントを除くともっと少ないし :) http://medaka.5ch.net/test/read.cgi/php/988890976/145
146: panton [sage] 01/11/30 22:49 ID:??? >>144 IO::Fileは Carp、Symbol、SelectSaver、IO::Seekable、File::Spec といろんなモジュールを呼んでますし、呼ばれたモジュールも 色々モジュールを呼んでるので全部あわせると結構な量です。 http://medaka.5ch.net/test/read.cgi/php/988890976/146
147: 名無しさん@お腹いっぱい。 [] 01/12/06 20:53 ID:u8ht0k3R slashdot型掲示板作られた方は いませんか? http://medaka.5ch.net/test/read.cgi/php/988890976/147
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 355 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.065s