我有一个文本文件,其值以逗号分隔。
示例:
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)值后的交替值....应该澄清一切!
答案 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
如果没有,你能更具体地了解存储在文件中的数据结构吗?