我有一个文件需要导入到我的数据库中,但我想一次导入10条记录。
e.g。我的.csv文件中有100条记录,因此第一次运行它将从0开始然后它将转到10并将您更改为domain.com/importfile.php/?start=10
这是我使用的代码。
$file = fopen($file, "r");
while (($data = fgetcsv($file, 8000, ",")) !== FALSE) {
$county = new County();
$county->countrycode = $countrycode;
$county->code = trim($data[0]);
$county->var_name = $county->mod_write_check( trim($data[1]) );
$county->name = trim($data[1]);
$county->statecode = trim($data[2]);
$save = $county->save();
}
fclose($file);
我想知道是否可以这样做。
答案 0 :(得分:1)
您可以使用$seek = ftell($file);
ftell documentation和fseek($file, $seek+1)
您需要在会话中或其他地方携带$seek
答案 1 :(得分:1)
我建议使用SplFileObject来处理文件。
这是一篇关于基础知识的博客:
http://hakre.wordpress.com/2010/07/25/parsing-csv-files-with-php-spl-style/
SplFileObject可以轻松搜索,但与limitIterator结合使用也可以:
$csv = new SplFileObject('data.csv');
$csv->setFlags(SplFileObject::READ_CSV);
foreach(new LimitIterator($csv, 0, 500) as $line){
#save $line
}