我正在寻找一种非常快速的方法来读取csv文件。我的数据结构如下所示:
timestamp ,float , string ,ip ,string
1318190061,1640851625, lore ipsum,84.169.42.48,appname
我正在使用fgetcsv将这些数据读入数组。
问题:表现。该脚本必须定期读取(并处理)超过10,000个条目。
我的第一次尝试非常简单:
//Performance: 0,141 seconds / 13.5 MB
while(!feof($statisticsfile))
{
$temp = fgetcsv($statisticsfile);
$timestamp[] = $temp[0];
$value[] = $temp[1];
$text[] = $temp[2];
$ip[] = $temp[3];
$app[] = $temp[4];
}
我的第二次尝试:
//Performance: 0,125 seconds / 10.8 MB
while (($userinfo = fgetcsv($statisticsfile)) !== FALSE) {
list ($timestamp[], $value[], $text, $ip, $app) = $userinfo;
}
谢谢:)
答案 0 :(得分:1)
最长线多长时间?将其作为第二个参数传递给fgetcsv(),您将看到最大的改进。
答案 1 :(得分:0)
检查PHP读取此文件的时间:
如果是bigg将文件移动到ramdisk或SSD
像这样的东西
preg_match_all('#\d{10},\d{10}, (.*?),\d.\d.\d.\d,appname#',$f,$res);
print_r($res);