ホームページ >バックエンド開発 >PHPチュートリアル >PHPでテキストの最後に5行のデータを返す方法を教えてください。
130514064 6,9,1,4,2 2013-5-14 16:40:00130514065 2,0,1,4,8 2013-5-14 16:50:00130514066 4,3,4,6,2 2013-5-14 17:00:00130514067 6,9,4,1,2 2013-5-14 17:10:00130514068 3,9,1,5,0 2013-5-14 17:20:00130514069 7,0,4,7,8 2013-5-14 17:30:00130514070 3,0,3,0,0 2013-5-14 17:40:00130514071 1,5,3,8,9 2013-5-14 17:50:00130514072 3,4,4,6,8 2013-5-14 18:00:00130514073 7,8,8,5,3 2013-5-14 18:10:00
print_r(array_slice($arr,-5)); a = file('filename');
echo join("n", array_slice($a, -5));
テキストが非常に大きく、各行が固定長である場合は、fseek を使用するのが最適です。 。例:
130514069 7,0,4,7,8 2013-5-14 17:30:00130514070 3,0,3,0,0 2013-5-14 17:40:00130514071 1,5,3,8,9 2013-5-14 17:50:00130514072 3,4,4,6,8 2013-5-14 18:00:00130514073 7,8,8,5,3 2013-5-14 18:10:00
訂正:
<?php$fp = fopen("test.txt", "r");fseek($fp, -(5 * 行字节数));echo fread($fp, -(5 * 行字节数));?>
上記の友人の皆様、ご返信いただきありがとうございます。テキスト データ ソースのアドレスは次のとおりです: http://www.17500.cn/getData/3d.TXT
テスト後もまだ問題があります。空白を返します
rrreeArray
(
[1] = > 2013123 2013-05-10 8 3 2 3 5 8 1 1 54313932 44224 1000 0 320 81595 160
[2] => 2013124 2013-05-11 9 6 3 9 8 8 1 1 53532440 1570 6 100 0 0 320 52118 160
[3] = > ; 2013125 2013-05-12 5 1 0 4 8 2 1 1 53256156 18776 1000 0 320 26435 160
[4] => 2013126 2013-05-13 4 1 0 2 6 5 1 1 54294900 9873 1000 0 320 21141 160
)
それでもできない場合は、php 設定の問題です
xuzuning モデレーターに戻ります。
このアドレスが使用された場合はどうなりますか? http://web45800.w221.vhost058.cn/test.php
同じではないですか?
<?php$fp = fopen("test.txt", "r");fseek($fp, -(5 * 行字节数), SEEK_END);echo fread($fp, -(5 * 行字节数));?>Array
[1] => 130514083 3,2,7,4,0 2013- 5-14 19:50:00
[2] => 130514084 2,5,9,9,4 2013-5-14 20:00:00
[3] => 130514085 5,8,1 ,7,7 2013-5-14 20:10:00
[4] => 130514086 1,3,7,5,7 2013-5-14 20:20:00
)