PHP - 从文本文件的末尾读取

时间:2011-04-18 01:35:26

标签: php arrays text file-io

我有一个文本文件,其值以逗号分隔。

示例:

1299491735618,10,84,10,121.6,10,120.0,12994917389996,12, 13, 14, 15, and so on ..

现在,我只需要读取最后一组“数据”,即仅从12994917389996,12, 13, 14, 15, and so on ...

在这种情况下,我猜12994917389996大于130而其他值小于130.所以,我需要从FROM 12994917389996读到文件末尾...

希望你明白了!

编辑1:不,这是一个动态文本文件,不断更新,我每次只需要读取最后一组数据!

编辑2:我的代码

<?php
$file = fopen('graph.txt', 'r') or die("can't open file");

if ($file) {
    while (!feof($file)) {
        $line = trim(fgets($file));
        if (strlen($line)) {
            $fields = explode(",", $line);
            $num = count($fields);
            for ($i = 0; $i < $num; $i++) {
                $keyval[$i] = $fields[$i];
                if ($i == 0) {
                    $keyval['x'][] = $fields[$i];
                    echo $keyval['x'][0];
                }
                else {
                    if ($i % 2 == 0) $keyval['y'][] = $fields[$i];
                    else $keyval['y1'][] = $fields[$i];
                }
            }
        }
    }
}

fclose($file);
?>  

在这里,我使用$ keyval [x] []存储巨大的xxxxxxxxxxxxx值和keyval [y] []和keyval [y1] []来存储GIANT(xxxxxxxxxxxxx)值后的交替值....应该澄清一切!

2 个答案:

答案 0 :(得分:1)

对不起,我不确定我明白了......除了第一个数字之外,你想要从第一个数字大于130的所有数字?伙计,这很复杂:D

这个怎么样?

$str = "1299491735618,10,84,10,121.6,10,120.0,12994917389996,12,13,14,15,16,17";

$arr = explode(',', $str);

$i = 1;
while ($i < count($arr) && floatval($arr[$i]) < 130)
  $i++;

print_r(array_slice($arr, $i));

输出:

Array
(
    [0] => 12994917389996
    [1] => 12
    [2] => 13
    [3] => 14
    [4] => 15
    [5] => 16
    [6] => 17
)

答案 1 :(得分:0)

希望这会有所帮助。

$ echo '1299491735618,10,84,10,121.6,10,120.0,12994917389996,12, 13, 14, 15'  > file
$ php -a
php > $fp = fopen('/path/to/file', 'r');
php > fseek($fp, 38);
php > echo fgets($fp);
12994917389996,12, 13, 14, 15

如果没有,你能更具体地了解存储在文件中的数据结构吗?