所以我有这个脚本解析文件并将数据插入我的数据库。但是现在我正在查看的文件在我需要的东西之前有一堆随机文本(基本上是日志其余部分的一个键)。所以我需要在文件中找到时间戳,然后按照通常的那样操作,忽略时间戳之前的所有内容。日志看起来像这样 -
(Blah blah, random stuff)
'2004-05-12 15:45:00',0,0,0,141713,,123.288,122.449,123.2...
继续我的代码,一旦我“点击”时间戳,将值存储在数组中 -
// read and store the values in an array
while (($buffer = gzgets($fp, 8192)) !== false)
{
$val[$i] = $buffer;
$i++;
}
$qry = "insert into afeed
set time_stamp='".$val[0]."',
error_value='".$val[1]."',
firstThing='".$val[2]."',
...
otherstuff='".$val[12]."',
lastThing='".$val[13]."'";
}
所以要么寻找时间戳并从那里开始,要么我在想,因为每次我找到它的大小并且'跳过那么多字节'时,开头的所有无用的东西都是一样的?
这有可能吗?
答案 0 :(得分:0)
您的两种潜在解决方案都是可行的。 “跳过那么多字节”的解决方案可能是最直接的。如果你提前知道无用东西的长度,例如,每个文件开头的64个字节,你可以使用类似gzseek($fp, 64)
的东西来移动文件指针超过无用的东西。
既然你说无用的东西每次都是一样的,这应该有效。如果无用的东西不是预定的长度,一旦你确定了无用的东西有多长时间,这个方法仍然可以使用(我需要看看有什么无用的东西来决定最好的方法)。