« CGI::Session での IPMatch の処理 | メイン | あけましておめでとうございます »
2009年12月31日
PHP / ファイルの最後からn行を取得する >>PHP
exec tail してやれば簡単だけど、PHPでゴリゴリ書くとこんな感じ。low memoryなマシンとかでどうぞ。メモリ内に格納しないでpointerを書いたファイルを一時的に生成する手もありますが、その辺りは環境に合わせて応用してください。
$pointer = 1000;
$handle = @fopen("testline.txt", "r");
$seek_pointer = array();
if ($handle) {
$line = 0;
while (!feof($handle)) {
$seek_pointer[$line] = ftell($handle);
$buffer = fgets($handle);
$line++;
}
if ($pointer < $line)
{
$seek_target = $seek_pointer[ abs($pointer - $line) - 1 ];
}
else
{
$seek_target = 0;
}
$array_lists = array();
fseek($handle, $seek_target);
while (!feof($handle))
{
$array_lists[] = fgets($handle);
}
fclose($handle);
}
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
現在、この記事はコメントを受け付けておりません。