#!/usr/local/bin/perl require './cfg.pl'; #表示する件数 $rss_count = 5; # 記事のタイトルの最大長(半角文字換算) $sub_length = 60; # 辞典のフォルダのフルパス $jiten_path = "http://localhost/cgi-bin/jiten3/"; @Index = &FileRead("$LogDir"."/index.dat"); @Index = grep{(split(/<>/))[2] ne "削除済み"} @Index; MAIN:{ print "Content-type: application/xml\n\n"; $xml = ""; $xml .= ""; $xml .= ""; $xml .= ""; $xml .= "$title_str "; $xml .= "$jiten_path$script_name"; $xml .= ""; $xml .= "ja"; for(my $i=0; $i < $rss_count && $Index[$i] ne ""; $i++){ my($rss_num, $rss_name, $rss_genre) = (split('<>', $Index[$i]))[0,2,3]; $xml .= ""; $xml .= "[$rss_genre] $rss_name"; $xml .= "$jiten_path$script_name\?mode=names&no=$rss_num"; $xml .= ""; { my @text = &FileRead("$LogDir/$rss_num.txt"); my($t_comment, $t_name, $t_fontcolor, $t_date) = split('<>',$text[$#text]); $t_comment =~ s/<[^>]*>//g; # 文字数が設定以上の長さだったら切る if((length $t_comment) >= $sub_length){ $t_comment = substr($t_comment, 0, $sub_length); my $w = ''; $t_comment =~ s/([\x81-\x9f\xe0-\xef].|[^\x81-\x9f\xe0-\xef])/$w.=$&/eg; $t_comment = $w; $t_comment .= '...'; } $xml .= $t_comment; } $xml .= ""; $xml .= ""; } $xml .= ""; $xml .= ""; print $xml; } ########################## # ファイルを読み込む # 引数(ファイル名) ########################## sub FileRead { #ローカライズする my($filename,@LOG); #引数のファイル名(@_)を$filenameに格納する ($filename) = @_; #open関数でファイルを開く(このあとINはのように使える) if( !(open(IN,"$filename")) ){ exit; } #@LOGに読み込んだ内容を格納し @LOG = ; #ファイルを閉じ close(IN); #配列を返す return @LOG; }