用fgetcsv开始的位置

时间:2013-04-19 04:57:48

标签: php handle fgetcsv

我有一个每20分钟运行一次的脚本,它将日志数据从CSV导入我的数据库。一些日志文件可能有20个条目,有些可能有超过400,000个。我的挑战是......日志文件可能会在我的例程运行的时间间隔内发生变化或增长。在下一次导入时,我想查看在上一个例程运行期间导入的最后一个日志条目,而不是必须从我的表中删除数据并重新导入整个日志文件。这甚至可能吗?

目前,我的代码是:

if (($handle = fopen("/STORAGE/logfile.txt", "r")) !== FALSE)
    {
        while (($columnsUser = fgetcsv($handle, 1000, ",")) !== FALSE)
            {
                etc

因此,例如,如果在12:20,日志文件有1000个,我导入所有这些。在12:40,如果有更多的话,我想从第1001行开始。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以用ftell和fseek做到这一点。 http://php.net/manual/en/function.ftell.php http://php.net/manual/en/function.fseek.php 将位置存储在数据库中以供以后参考。