热搜:NVER node 开发 php

请教,php中如果返回文本末尾5行数据

2024-09-12 11:10:01
请教,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


请教,php中,如何返回某文本(行高是动态的)最后5行数据。
希望得到的结果如下
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


回复讨论(解决方案)

$arr=file('tt.txt');
print_r(array_slice($arr,-5));

$a = file('filename');
echo join("\n", array_slice($a, -5));

如果文本超大及每行定长,用fseek就再好不过了。比如:

<?php$fp = fopen("test.txt", "r");fseek($fp, -(5 * 行字节数));echo fread($fp, -(5 * 行字节数));?>

修正一下:

<?php$fp = fopen("test.txt", "r");fseek($fp, -(5 * 行字节数), SEEK_END);echo fread($fp, -(5 * 行字节数));?>

感谢以上各位朋友回复。文本数据源地址是:http://www.17500.cn/getData/3d.TXT
经测试 还是有问题。返回空白

$a = file('http://www.17500.cn/getData/3d.TXT');print_r(array_slice($a, -5));
Array
(
[0] => 2013122 2013-05-09 4 6 5 3 8 6 1 1 53486726 17658 1000 0 320 56105 160

[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 15706 1000 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
谢谢

不是一样吗?

$a = file('http://web45800.w221.vhost058.cn/test.php');print_r(array_slice($a, -5));
Array
(
    [0] => 130514082 4,3,0,0,4 2013-5-14 19:40:00

    [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
)