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
)