勉強したことのメモ

webプログラマが勉強したことのメモ。

PHPでログファイルから指定行数表示させる

      2014/05/17

エラーログを最新分から指定行数表示させる
プログラムがあって、どういった作りになっているのか
気になったのでメモ。

■サンプル
http://sample.taitan916.info/logcheck/

■ソース
<html lang="ja">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<head>
</head>
<body>
<form action="" method="GET">
<table width="100%">
<tr>
<td class="title">
取得行数
</td>
<td class="left">
<input type="text" name="rows" size="20" />行
<input type="submit" value="表示する" />
</td>
</tr>
</table>
</form>
<?php
$log_file = "test.log";
$log_data = file($log_file); //配列に格納
$rows    = isset($_GET['rows']) ? max(0,intval($_GET['rows'])) : 5; //最大表示行数
if ($rows >= count($log_data)) { //設定した表示行数が、全体行数より大きい場合
$rows = count($log_data); //表示行数は全体表示行数とする
}
$n = count($log_data) - $rows; //全体行数 - 表示行数を取得
for ($i = count($log_data); $i >= $n; $i--) { //最新分から古い方へ$nまでデクリメント。
echo $log_data[$i] . "<br />\n"; //表示していく
}
?>
</body>
</html>

■補足
test.logには

1line
2line
3line
...
...
100line

まで書かれている状態。

file関数って使ったこと無い気がするけど、
こういった使い方ができるんや、と思った。

■file関数
http://php-beginner.com/function/filesystem/file.html

 - PHP

  関連記事

短縮URL作成(管理画面)2

<? /* 編集機能追加。もっと短く記述できるようにする。 */ erro ...

PHPで携帯(スマホ含)とPCの判別

PHPにて携帯(スマホ含む)とPCで処理を振り分けたかったのでメモ。 <? ...

PHPでの$_REQUESTは色々危険

extract($_REQUEST)はかなり怖いよ、という話が最近あった。 でき ...

preg_matchについて

PHPでのpreg_matchについて教わることがあったのでメモ。 ■参考サイト ...

PHPで%sとか%dとか

PHPで探し物していて%sとか%dとかいった記述があり 何これとなったのでメモ。 ...

PHP5.3にバージョンアップした際の注意

PHP5.1? ぐらいから5.3にバージョンアップした際に 色々とあったのでメモ ...

PHPでのend~~について

endforとかendifとか使いたかったけど、構文の書き方が 分からなかったの ...

PHPで複数の画像やテキストファイルをzipファイルとしてダウンロードさせる

PHPで画像ファイルやテキストファイルをzip圧縮して、ダウンロードさせたかった ...

PHPからMySQLにシリアライズしたデータを格納

アンケートフォームみたいなのがあって、 今後も定期開催し、尚且つ質問内容は増減す ...

PHPで配列を値で検索、破棄

PHPの配列で特定の値が入っていれば それを破棄したいということがあった。 ・u ...