自作CGIを評価するスレ (672レス)
自作CGIを評価するスレ http://medaka.5ch.net/test/read.cgi/php/1049514428/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
588: nobodyさん [] 2006/06/06(火) 15:21:29 ID:Re1RmuFG 簡易予定表のようなものを組んでみたんですが、なんだかモッサリしてる気がします。 もっと簡潔に書けるような気がするんですが自分ではこれが限界でした。 あと、ファイルロックのやり方が合っているのか自信がありません。 一応動いていることは動いているんですが、問題はないでしょうか。 改良すべき点、根本的にこういう書き方に直した方が良い、とかあればアドバイスお願いします。 大まかな内容は以下のようなものです。 予定として保存する内容は「予定日(月と日)」と 「予定内容(長くても200バイト程度)」の2つでフォームから渡します。 予定を保存するファイルは月単位で作成します。 例えば2006年6月の予定の場合なら「200606.txt」というファイル名です。 保存するファイルがないときはその都度作成し、 6月1日 6月2日 6月3日 . . . という風に日付だけを先に入れておきます。 保存するファイルがあるときは、 フォームから渡された「予定日」とマッチした日付の次の行に「予定内容」を書き込みます。 内容は以上です。次レスにコードを晒します。 http://medaka.5ch.net/test/read.cgi/php/1049514428/588
589: nobodyさん [sage] 2006/06/06(火) 15:22:42 ID:??? # 保存するファイル名 $a = sprintf("%04d%02d",$YEAR,$MON) $file = "$a.txt"; # 月から日数を出す if($MON == 1|3|5|7|8|10|12){ $m = 31; }elsif($MON == 4|6|9|11){ $m = 30; }else{ if($YEAR % 4 ==0){ $m = 29; }else{ $m = 28; } } for($i=1;$i<=$m;$i++){ $date .= "$MON月$i日\r\n\r\n"; } http://medaka.5ch.net/test/read.cgi/php/1049514428/589
590: 後半 [sage] 2006/06/06(火) 15:23:17 ID:??? # 該当する月のファイルがなければ作成 if(!open(IN,"$file")){ open(OUT,">$file") flock(OUT,2); print OUT $date; close(OUT); } open(IN,"$file"); flock(IN,2); @A = <IN>; close(IN); # 「予定日」とファイル内の「日付」をマッチングさせて該当日付に「予定内容」を書き込む $loop = @A; $i = 0; while($loop > 0){ if($A[$i] eq $plan_day){# $plan_day = "フォームからの情報(予定日)"; $A[$i] .= "$plan_value\r\n";# $plan_value = "フォームからの情報(予定内容)"; } $loop --; $i ++; } if(!open(OUT, "+< $file")){&error;}; flock(OUT, 2); truncate(OUT, 0); seek(OUT, 0, 0); print OUT @A; close(OUT); http://medaka.5ch.net/test/read.cgi/php/1049514428/590
591: nobodyさん [sage] 2006/06/06(火) 15:45:22 ID:??? >>589 まだちゃんと読んでないが…。 >if($MON == 1|3|5|7|8|10|12){ >}elsif($MON == 4|6|9|11){ これって比べてるのは、両方とも $MON == 15 だよね。 どっちの条件にも入らないと思うけど…正しく動作してるの? http://medaka.5ch.net/test/read.cgi/php/1049514428/591
592: nobodyさん [sage] 2006/06/06(火) 15:51:41 ID:??? >$a = sprintf("%04d%02d",$YEAR,$MON) セミコロンは? 動作するヤツうp http://medaka.5ch.net/test/read.cgi/php/1049514428/592
593: nobodyさん [sage] 2006/06/06(火) 15:52:34 ID:??? ビット演算子を使っているんだ。 高度だな。 http://medaka.5ch.net/test/read.cgi/php/1049514428/593
594: nobodyさん [sage] 2006/06/06(火) 16:09:34 ID:??? switch文を使うと見やすいんじゃないかな? use Switch switch ($MON) { case [1,3,5,7,8,10,12] { $m = 31 } case [4,6,9,11] { $m = 30 } case [2] { $m = $YEAR % 4 ? 28 : 29 } else { print "そんな月知らん" } } http://medaka.5ch.net/test/read.cgi/php/1049514428/594
595: 589 [sage] 2006/06/06(火) 16:39:31 ID:??? レス遅くなりました。すみません。 該当部分を切り出して動作するコードをUPしてきます。 http://medaka.5ch.net/test/read.cgi/php/1049514428/595
596: 589 [sage] 2006/06/06(火) 17:02:59 ID:??? ttp://up.isp.2ch.net/up/b2611f9a934e.zip UPしました。パスは「589」です。 日付のところは594さんのアドバイスにしたがって書き換えました。 アドバイスの方よろしくお願いします。 http://medaka.5ch.net/test/read.cgi/php/1049514428/596
597: 589 [sage] 2006/06/06(火) 17:11:06 ID:??? >>591>>592 コードの一部分だけ抜き出してできるだけ短く書こうとしたので 分かりにくかった&書き損じがありました。すみませんでした。 >>594 perlでもswitchが使えるとは知りませんでした。 http://medaka.5ch.net/test/read.cgi/php/1049514428/597
598: nobodyさん [sage] 2006/06/06(火) 17:20:53 ID:??? いやperlではswitchは使えない。 http://medaka.5ch.net/test/read.cgi/php/1049514428/598
599: nobodyさん [sage] 2006/06/06(火) 17:24:17 ID:??? Switch なんてモジュールがあるのか知らんかった。 http://medaka.5ch.net/test/read.cgi/php/1049514428/599
600: nobodyさん [sage] 2006/06/06(火) 18:59:27 ID:??? cgi-lib.pl ktkr http://medaka.5ch.net/test/read.cgi/php/1049514428/600
601: nobodyさん [sage] 2006/06/07(水) 00:26:35 ID:??? PerlはPHPとは違ってCPANを探せば考えられる大体の車輪は既にある。 http://medaka.5ch.net/test/read.cgi/php/1049514428/601
602: nobodyさん [] 2006/06/20(火) 01:54:40 ID:jChy1x4Z >>596 見れない・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/602
603: nobodyさん [] 2006/07/08(土) 12:44:17 ID:hGiPCYN9 switchがあったとは・・・ http://medaka.5ch.net/test/read.cgi/php/1049514428/603
604: nobodyさん [] 2006/07/21(金) 16:23:10 ID:BWWkPiVe http://cgi37.plala.or.jp/bleach_w/bl2/btlryl.cgi http://medaka.5ch.net/test/read.cgi/php/1049514428/604
605: nobodyさん [] 2006/10/07(土) 10:40:01 ID:L17fbc1O @@@ http://medaka.5ch.net/test/read.cgi/php/1049514428/605
606: nobodyさん [] 2006/10/11(水) 22:51:05 ID:e5FQIx7N 特定の板のスレタイ検索をして、選んだスレから画像とかのサムネイルを表示するスクリプトを書いてみまスた(・ω・`) 恐ろしく見づらいと重いまスが・・ http://vip.ty.land.to/image/ http://pc8.2ch.net/test/read.cgi/php/1160569533/ でボチボチいじくったり、新しいことやったりしていきたいと思ってまスが、評価して欲しいス(・ω・`) 勉強かねてるので、車輪の再開発なのは承知でス http://medaka.5ch.net/test/read.cgi/php/1049514428/606
607: nobodyさん [sage] 2006/10/11(水) 23:36:54 ID:??? >>606 言葉遣い荒いけど、ばーっと書いた弊害なので許して。 取りあえずぱっとみてこんなもん。 ・一部のうpろだは、リファラが不味いと弾かれる。 ・画像がない場合の画像を一々作るのは無駄。 ・CGIモジュール使え。 ・グローバル変数も宣言しろ。 ・これは好みだけど、設定の変数はハッシュに纏めた方が分かりやすいこともある。 ・メインの流れはブロック作ってラベル付けた方が分かりやすいかも。 ・正規表現の|は案外コストがかかる。配列にしてマッチング。 ・先頭にrequire バージョン名; ・use warningsは〜? ・汚染チェックもきれい好きな方にはオススメ。 ・サブルーチンを先頭で宣言して欲しい。 ・変数名に日本語はいやん。 ・データーベースつかってほすぃ。 http://medaka.5ch.net/test/read.cgi/php/1049514428/607
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 65 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.005s