※このサンプルの解説は、「CGI(Perl)の解説」をすべて読み終えてる方を前提としています。
後になるほど省略されている場合がありますのでできるだけ順番に読んでください。
また、実行に際しては、サーバーでPHPが利用できる事を前提に解説しています。
■ アクセスログを表組みで表示する
以前、「PHPサンプル」−「カンマ区切りのデータを表組みにする」を解説しましたので、そのPHPに少し手を加えるだけで「アクセスログ」を簡単に表組みで表示することができます。
いつものことですが、
この処理を理解するには当然ですが、「HTML」の知識が必要になります。
解からない方は「HTMLの解説」で勉強してくださいね。
- 【 解 説 】
-
以前、カンマ区切りのデータとして次のようなものを用意しました。
$flist[0] = "0001,John,35"; $flist[1] = "0002,Kate,26"; $flist[2] = "0003,George,18";このデータは、配列データです。
今回のアクセスログはファイルに記録されてます。
ファイルに記録されたデータを配列データにセットする方法は「PHPの予備知識」−「ファイルの読み書き」で解説している通り、次のように記述します。
$filnam = "acclogf.cgi"; $flist = file($filnam);次に、見出し部分を次のようにアクセスログ用に変更します。
<table border='1'> <tr> <th>日時</th> <th>表示ページ</th> <th>リンク元</th> <th>エージェント</th> <th>ホスト名</th> <th>IPアドレス</th> </tr> </table>また、データの表示部は、全部で6項目ありますから、記述を次のように変更します。
for($scnt0 = 0;$scnt0 <= 5;$scnt0++){ print "<td>$strbuf[$scnt0]</td>\n"; }以上のような箇所を変更するだけで、簡単に「アクセスログを表組みで表示する」ことができます。
では、上記の内容のように変更した「アクセスログを表組みで表示する」は次のようになります。
- 【記述サンプル】
- print <<< END_DOC <HTML> <HEAD> <title>アクセスログを表組みで表示する</title> </HEAD> <BODY> END_DOC; $filnam = "acclogf.cgi"; $flist = file($filnam); print <<< END_DOC <table border='1'> <tr> <th>日時</th> <th>表示ページ</th> <th>リンク元</th> <th>エージェント</th> <th>IPアドレス</th> <th>ホスト名</th> </tr> END_DOC; foreach($flist as $strdat){ print "<tr>\n"; $strbuf = split(",", $strdat); for($scnt0 = 0;$scnt0 <= 5;$scnt0++){ print "<td>$strbuf[$scnt0]</td>\n"; } print "</tr>\n"; } print "</table>\n"; print <<< END_DOC </BODY> </HTML> END_DOC; ?>