Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP解析的大型.txt文件(15.5mb)_Php_Mysql_Fopen_Fgets - Fatal编程技术网

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

使用PHP解析的大型.txt文件(15.5mb),php,mysql,fopen,fgets,Php,Mysql,Fopen,Fgets,我的任务是大约解析一个大的.txt文件。在MySQL数据库中输入15000行。问题是我的执行时间最多为30秒。我试过用这个: $handle = @fopen('http://www.someothersiteyouknow.com/bigfile.txt', "r"); if ($handle) { while (!feof($handle)) { $lines[] = fgets($handle, 4096);

我的任务是大约解析一个大的.txt文件。在MySQL数据库中输入15000行。问题是我的执行时间最多为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秒

老实说,这似乎不是个好主意。如果多个用户在同一时间访问同一页面,或者在同一时间访问同一页面附近,该怎么办?您将同时处理大量用户*大型文本文件

建议您将文件带到本地,如果文件不存在,则将其保存到本地,并使用本地文件。这将有助于减少您的事务处理时间

这将帮助你进入30秒极限。。。如果文件下载时间不超过30秒

考虑在循环中添加一个

此外,如果这是一件一次性的事情,您可以考虑使用mySQL来完成它?

考虑在您的循环中添加一个


此外,如果这是一个一次性的事情,您可以考虑使用mySQL?如果您可以将文件放在服务器上,那么您可以尝试使用LOAD DATA Infle query。它有大量的选项来解析输入,并且运行速度相当快。开始尝试使用文件的一小部分。如果服务器最终将所有内容插入到一行中,则通过指定“\n”或“\r\n”来调整以part结尾的行。然后根据文件中的行数再次检查行数,并选择其中一些行以查看表中的结果。

如果可以将文件放在服务器上,则可以尝试使用加载数据填充查询。它有大量的选项来解析输入,并且运行速度相当快。开始尝试使用文件的一小部分。如果服务器最终将所有内容插入到一行中,则通过指定“\n”或“\r\n”来调整以part结尾的行。然后根据文件中的行数再次检查行数,并选择其中一些行,以查看表中的结果。

您尝试过吗?在插入数据之前是否以任何方式操作数据?我没有尝试过fread,它看起来很有用。谢谢我正在使用explode等工具处理数据。txt文件、sql查询或CSV文件中有什么内容?由于使用这样的初始函数拆分内容应该不会那么困难,所以一旦每个小文件完成,它就会被删除。它是由换行符分隔的纯文本。每行对应一个产品。保存一个本地副本,然后在数据块被处理时删除数据似乎是个好主意。非常感谢。您试过了吗?在插入数据之前您是否以任何方式操纵了数据?我没有试过fread,它看起来很有用。谢谢我正在使用explode等工具处理数据。txt文件、sql查询或CSV文件中有什么内容?由于使用这样的初始函数拆分内容应该不会那么困难,所以一旦每个小文件完成,它就会被删除。它是由换行符分隔的纯文本。每行对应一个产品。保存一个本地副本,然后在数据块被处理时删除数据似乎是个好主意。非常感谢。我会按照你的建议保存文件的本地副本。我想我已经准备好重新处理这个问题了,谢谢。我会按照你的建议保存文件的本地副本。我想我已经准备好重新处理这个问题了,谢谢。