七行プログラミング (452レス)
上下前次1-新
267(1): nobodyさん [sage] 04/03/04 21:42 ID:??? AAS
>>266266(6): nobody [] 04/03/04 17:41 ID:yJd59Upc(1) AAS
accesslog.cgi - 7行アクセス解析。
SSIで埋め込むことで記録。例:<!--#exec cgi="accesslog.cgi"-->
データを見るときは http://○○/accesslog.cgi?20040304&MSIE 6
みたいにパラメータ’日付 & 検索文字列(省略可))を渡して呼び出します。
正直perl歴はまだ半年で、テクニック的なものは使えないのでこの程度です。
#! /usr/bin/perl
sub z{local(*z)=$_[0];$z=~s/^(\d)$/0$1/;}print"Content-Type:text/plain\n\n";%e=
%ENV;$q=$e{'QUERY_STRING'};($s,$n,$h,$d,$m,$y)=localtime;$y+=1900;$m++;z(*m);z(
*d);z(*h);z(*n);z(*s);if(!$q){open(F,">>$y$m$d.txt");print F
"$h$n$s<>$e{'REMOTE_ADDR'}<>$e{'HTTP_USER_AGENT'}<>$e{'HTTP_REFERER'}\n";}else{
($p,$k)=split(/&/,$q);open(F,"$p.txt");while(<F>){$c++;if($_=~/$k/){print;$t++;
}}print"\n全$c件/ヒット$t件\n";}close(F);
初級者お断りとは言わないし、むしろどんどんコードを書き込んでほしい
けれど、外部リンク[cgi]:cm.xrea.cc は一通り読んでほしいな。
ハッシュキーのクォート、ブロック末のセミコロン、関数の括弧、暗黙の
代入が行われる変数 etc etc... 文法的に省略可能な部分が沢山残って
いるのはちょっとねぇ。
print"Content-Type: text/plain\n\n";if(($_,$k)=split/&/,$ENV{QUERY_STRING}){/^
\d{8}$/x&&open F,"$_.txt";($k?/\Q$k/:1)&&($t++,print)while<F>;print"\n全$.件/".
"ヒット$t件"}else{s/^\d$/0$&/for($s,$n,$h,$d,$m,$y)=localtime;$y+=1900;$m++;$m
=~s/^\d$/0$&/;open F,">>$y$m$d.txt";print F join('<>',"$h$n$s",@ENV{REMOTE_ADDR
,HTTP_USER_AGENT,HTTP_REFERER}),"\n"}
Perl の習熟度に自信がないなら、自力で何とか10行、ぐらいのサイズ
から載せてくれたら、スレの住人がよってたかって縮めるんじゃないかな。
上下前次1-新書関写板覧索設栞歴
あと 185 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s