=head スクリプト名 renewal_r.cgi - 更新日記検索 =head 概要 更新日記形式の日記を読取、日記の記事単位で検索結果を表示する。 =head 更新履歴 2004-11-07 メモるシステム(memol_edit.cgi ver: 1.01)でメモを書けるように、メモ作成のリンクを生成(ver: 1.01) =cut use LWP::Simple; require 'cgi-lib.pl'; # 日記システム関連の設定 $diary_filename = "renewal";# 日記ファイルベース名 $diary_file = "${diary_filename}.html";# 日記ファイル名 $siteurl = "http://homepage1.nifty.com/kazuf/";# 日記ファイルを置くサイト URL $sitename = "TS Network ☆ミ";# サイト名 $siteimage = "png/tsnetworkc3.png";# サイト代表画像 $mailaddress = "kazuf\@mars.dti.ne.jp";# サイト管理者メールアドレス $title = "更新日記検索結果";# 日記検索結果表示タイトル $fyear = 2001; # 日記を付け始めた年 $fmon = 3; # 日記を付け始めた月 $cgidir = $ENV{'CGIDIR'};# メモるシステム追加 [2004-11-07] # renewal_r.html の入力フォームからのデータ取得 &ReadParse(*in); # 現在の日付時刻の取得 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); if($in{'byear'}){ if($in{'byear'} > $fyear && $in{'byear'} - 1900 <= $year){ $fyear = $in{'byear'}; $fmon = 1; } } if($in{'eyear'}){ $eyear = $in{'eyear'} - 1900; if($eyear < $year && $eyear >= $fyear){ $year = $eyear; $mon = 12; } } for($iy=$fyear;$iy<=$year+1900;$iy++){ # 年が日記を付け始めた年ならば、 if($iy == $fyear){ $immin = $fmon;# 日記を付け始めた月から $immax = 12; # 12月まで # 年が今年の }elsif($iy == $year + 1900){ $immin = 1; # 1月から $immax = $mon;# 今月まで # 間の年ならば、 }else{ $immin = 1; # 1月から $immax = 12;# 12月まで } for($im=$immin;$im<=$immax;$im++){ $im =~ s/^(\d)$/0$1/;# 1桁月の場合は10の位に0を付加する # 日記ファイル名を配列に格納していく push(@dfiles, "${diary_filename}_${iy}_${im}.html"); } } push(@dfiles, "${diary_filename}.html");# 今月のファイル名 # renewal_r.html の入力から検索文字列取得 if($in{'pattern'}){ $kw = $in{'pattern'}; }else{ $kw = $ARGV[0]; } # CGI 出力開始 print "Content-type: text/html\n\n"; # 日記ファイル名とサイト名から、URL を生成し、 # LWP::Simple の get 関数で内容を取得する。 foreach $dfile (sort @dfiles){ $htmlfile = $siteurl . $dfile; if($html = get $htmlfile){ # 改行で分割して配列に格納 @content = split(/\n+/, $html); }else{ next; } # 行単位で解析 $insw = 0; foreach $line (@content){ # 日記の日付を取得 if($line =~ /^
($count) $line
\n"; } } } # CGI HTML 先頭部分の出力 print <