我的任务是将一个大型 .txt 文件(大约 15,000 行)解析到 MySQL 数据库中。问题是我正在使用 30 秒的最长执行时间。我试过使用这个:
$handle = @fopen('http://www.someothersiteyouknow.com/bigfile.txt', "r");
if ($handle) {
while (!feof($handle)) {
$lines[] = fgets($handle, 4096);
}
fclose($handle);
}
然后我可以访问 $lines 数组并以我需要的任何方式解析数据,但脚本完成运行所需的时间太长。我的感觉是我应该分块读取文件,一次可能读取 1000 行。但我只了解如何从 .txt 文件的开头读取。请您传授一些正确执行此操作的方法的想法?澄清一下,我不需要具体的代码示例,只需要有关如何使用 PHP 解析大型 .txt 文件的想法。
最佳答案
老实说,这似乎不是最好的主意。如果多个用户同时或大约同时访问同一个页面怎么办?您将同时处理(用户数*大文本文件)。
建议您将文件带到本地(如果文件不存在,请将其保存在本地),然后使用本地文件。这应该有助于减少您的交易时间
这应该有助于将您带入 30 秒的限制......如果文件下载时间不超过 30 秒!
关于php - 使用 PHP 解析的大型 .txt 文件 (15.5mb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705996/