勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPでエラーログ等のログファイルから指定した行数を表示させる方法

   2024/05/22  PHP

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

 

サンプル

https://taitan916.info/sample/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>

 - PHP

  関連記事

PhpSpreadsheetでフォーマット用のエクセルを読み込み、指定したセルにデータを書き込んだ上で別名で保存する方法
PhpSpreadsheetでフォーマット用のエクセルを読み込み、指定したセルにデータを書き込んだ上で別名で保存する方法

PHPで納品書等のフォーマット用のExcelを読み込み、指定したセルにデータを書 ...

PHPでLINEログイン後「ユーザー名」「ユーザーID」「プロフィール画像URL」「メッセージ」を取得する方法
PHPでLINEログイン後「ユーザー名」「ユーザーID」「プロフィール画像URL」「メッセージ」を取得する方法

<a>タグのリンクからページ遷移するとLINEログインし、その後に「 ...

CodeIgniter4でGET / POSTパラメータの受け取りとルーティング設定方法
CodeIgniter4でGET / POSTパラメータの受け取りとルーティング設定方法

CodeIgniter4.4.4でページを開いた際にGET / POSTパラメー ...

PHPで画像のフォーマット(拡張子)の変換
PHPで画像のフォーマット(拡張子)の変換

画像のアップロードでjpg/png/gif形式を受け付けつつ、 最終的にjpgで ...

ブラウザ上でファイルのアップ・ダウンロードが可能なTiny File Managerの利用方法
ブラウザ上でファイルのアップ・ダウンロードが可能なTiny File Managerの利用方法

ブラウザ上でファイルのアップ・ダウンロードが可能なファイルマネージャーを設置した ...