PHPでテキストファイルの末尾5行だけを読み取る方法
テキストファイルの末尾5行だけを読み取りたい場合は、file() 関数と count() 関数を組み合わせることで簡単に実現できます。具体的なコードは以下のとおりです。
コード例
$file = file("filename.txt");
for ($i = max(0, count($file)-6); $i < count($file); $i++) {
echo $file[$i] . "\n";
}出力結果
このコードを実行すると、次のような出力が得られます。
ファイルに5行を超えるテキストが含まれている場合、テキストファイルの最後の5行が表示されます。
コードの仕組み
まず file() 関数でファイル全体を読み込み、1行ずつ要素に格納した配列を取得します。続いて count() 関数で総行数を求め、ループの開始位置を「総行数 − 6」とすることで、配列の末尾から5行分だけを出力します。
ポイントは max(0, count($file)-6) の部分です。これにより、ファイルの行数が5行に満たない場合でも負のインデックスを参照せず、先頭行から安全に読み取ることができます。
大きなファイルを扱う場合の注意点
file() 関数はファイル全体をメモリ上に読み込むため、サイズの非常に大きいファイルではメモリ消費量が問題になることがあります。そのようなケースでは、fopen() でファイルを開いた後に fseek() を使ってファイルの末尾付近から読み進める方法や、SplFileObject を利用する方法が効率的です。
-
Tkinterでテキストウィジェットを読み取り専用(無効化)にする方法
Tkinterでは、テキストウィジェットを無効化(disabled)したいケースがあります。これを実現するには、テキストウィジェットの state オプションを DISABLED に設定します。こうすることでテキストウィジェットがフリーズし、読み取り専用の状態になります。この記事では、テキストウィジェットとボタンを作成し、ボタンをクリックするとテキストウィジェットを即座に無効化できるサンプルを紹介します。コード例# ライブラリのインポート from tkinter import * # ウィンドウのインスタンスを作成 win = Tk() # ウィンドウのサイズを設定 win.geomet
-
Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説
Linuxを使い始めたばかりの方から最もよく寄せられる質問のひとつが、「どのコマンドを使えばファイルの中身を確認できるのか」というものです。伝統的なUnix環境に関することの多くと同じように、やり方はひとつではありません。しかも、ここで紹介するテクニックの大半は、OS XやFreeBSDを使っている方にもそのまま応用できます。つまり、コマンドラインからファイルを表示する基本さえ身につければ、ほぼどんなUnix系のプロンプトに出会っても迷わず操作できるようになるということです。方法1:通常のテキストファイルを表示するテキストファイルを表示する最も簡単な方法は、catに続けてファイル名を入力するこ