php - 使用 PHP 解析的大型 .txt 文件 (15.5mb)

标签 php mysql fopen fgets

我的任务是将一个大型 .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 行。但我只了解如何从 .t​​xt 文件的开头读取。请您传授一些正确执行此操作的方法的想法?澄清一下,我不需要具体的代码示例,只需要有关如何使用 PHP 解析大型 .txt 文件的想法。

最佳答案

老实说,这似乎不是最好的主意。如果多个用户同时或大约同时访问同一个页面怎么办?您将同时处理(用户数*大文本文件)。

建议您将文件带到本地(如果文件不存在,请将其保存在本地),然后使用本地文件。这应该有助于减少您的交易时间

这应该有助于将您带入 30 秒的限制......如果文件下载时间不超过 30 秒!

关于php - 使用 PHP 解析的大型 .txt 文件 (15.5mb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705996/

相关文章:

php - 在php中过滤掉字符串中的数字

PHP/MySQL我选择多列

c - 在 C 中调试 fopen

java - 我的项目运行,但有几个错误,例如我需要删除的行

php - 将复选框值存储到mysql数据库

带有 "wb"的 PHP fopen() 不起作用

c - 为什么 ftell 会跳过文件中的某些位置?

php - API key 在本地主机上工作,但不在服务器上

php - 网站登录系统

php - 抛出新的 FileException ('File must be readable.' );