- 1 名前:ミスター有料 [2005/09/28(水) 17:37:20 ID:LCMjwTe9]
-
Level3-BBS Script www.3lab.org/ 0ch 0ch.mine.nu/ 鏡の国 script.s16.xrea.com/ 本7 ◆uPD9aFm9hI、クレクレ厨、教えて君、DQNは書き込まないでください。 また、↑の書き込みを見つけても放置してください。すぐに「ウザい」とレスをつけてしまう 反射神経がとても優れている・他人を無視できない方もご遠慮願います。 もしどうしても無視できない時は、話題を変えてレスしましょう。
- 615 名前:nobodyさん mailto:sage [2006/09/28(木) 08:35:21 ID:???]
- #!/usr/bin/perl -w
use strict; use POSIX qw(strftime); use File::stat; use Time::Local qw(timegm); if ($#ARGV != 1 || $ARGV[0] =~ /\W/ || $ARGV[1] =~ /\D/) { print <<EOT; Status: 400 Bad Request Content-Type: text/plain 400 Bad Request EOT exit; } my $fname = "../$ARGV[0]/dat/$ARGV[1].dat"; my $st; if (!($st = stat($fname))) { print <<EOT; Status: 404 Not Found Content-Type: text/plain 404 Not Found EOT exit; }
- 616 名前:nobodyさん mailto:sage [2006/09/28(木) 08:36:06 ID:???]
- my $ims = !$ENV{HTTP_IF_MODIFIED_SINCE}
? 0 : $ENV{HTTP_IF_MODIFIED_SINCE} =~ /^\w{3,}, {1,2}(\d{1,2})[ -](Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[ -](\d{2,4}) {1,2}(\d{1,2}):(\d{2}):(\d{2}) GMT$/ ? timegm($6, $5, $4, $1, index('JanFebMarAprMayJunJulAugSepOctNovDec', $2) / 3, $3) : $ENV{HTTP_IF_MODIFIED_SINCE} =~ /^\w{3} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) {1,2}(\d{1,2}) {1,2}(\d{1,2}):(\d{2}):(\d{2}) (\d{4})$/ ? timegm($5, $4, $3, $2, index('JanFebMarAprMayJunJulAugSepOctNovDec', $1) / 3, $6) : 0; if ($ims ge $st->mtime) { print "Status: 304 Not Modified\n\n"; exit; } my $mtime = strftime('%a, %d %b %Y %T GMT', gmtime($st->mtime)); print <<EOT; Content-Type: application/xml; charset=Shift_JIS Last-Modified: $mtime Cache-Control: max-age=5 <?xml version="1.0" encoding="Shift_JIS"?> <text><![CDATA[ EOT if (open(DAT, $fname)) { while (<DAT>) { print; } close(DAT); } print "]]></text>\n";
- 617 名前:nobodyさん mailto:sage [2006/09/28(木) 08:39:03 ID:???]
- >>615-616 のように dat の内容を XML の CDATA セクションに入れて渡せばおk
- 618 名前:nobodyさん mailto:sage [2006/09/28(木) 09:35:48 ID:???]
- >>616 ちとミス
-if ($ims ge $st->mtime) { +if ($ims >= $st->mtime) { で、使い方は、例えば /test/dat.cgi として置いた場合 /test/dat.cgi?php+1127896640 のように呼ぶ。
- 619 名前:608 mailto:sage [2006/09/28(木) 14:47:39 ID:???]
- read.html
とりあえず、ログを2個作るバージョンをアップしておきます。 deai5656.s11.x-beat.com/cgi/test_bbs/ 配布場所 1st.geocities.jp/deai5656/ 普通にエラー、バグだらけなので誰か直してくだ(ry >>615-618 POSIXがX-BEATだと使えないかもしれないけど試してみますー
- 620 名前:nobodyさん mailto:sage [2006/09/29(金) 04:09:00 ID:???]
- 同じようなスレが運営にもあるな
それとは別でやってんの?
- 621 名前:nobodyさん mailto:sage [2006/09/29(金) 04:23:22 ID:???]
- それのぱくりだろ
あっちはApacheで文字コード変換してるんだっけ? CGIやPHPで代わりに変換したらPerlread.cgiとどっちが負荷でかいか・・・
- 622 名前:nobodyさん mailto:sage [2006/09/29(金) 04:37:40 ID:???]
- 2ch 版のは文字コード変換は mod_charset_lite でやってる。
自宅鯖とかならそれ使えばいいけど、レン鯖でモジュール組み込みとかできなければ 代わりに >>615-618 のを使えばおk XML の CDATA セクションに入れる形なら、 文字コード変換せずに Shift JIS のままでいいからね。
|

|