gpt4 book ai didi

php - 读取巨大的文本文件并将每一行存储在数据库中

转载 作者:行者123 更新时间:2023-11-29 08:54:45 28 4
gpt4 key购买 nike

我编写了一个 PHP 脚本,它运行一个文本文件(实际上它是来自 imdb 的“列表”文件)并将其存储在我的本地 MySQL 数据库中。

public static function updateMovies( $list ) {
$offset = 15; // movies.list start with movie names at line 16
$handle = fopen($list, "r") or die("Couldn't get handle");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle);
if($offset!=0)
$offset--;
else
if($buffer[0] != '"'){
$title = trim( substr( $buffer, 0, strpos( $buffer, '(' ) ) );
$year = intval(trim( substr( $buffer, strpos( $buffer,'(' )+1, 4 ) ));
Movie::create( $title, $year );
}
}
fclose($handle);
}
}

由于这些列表文件高达 200MB,因此需要很长时间。默认情况下,PHP 的 MAX_EXECUTION_TIME 设置为 30 秒。

我将此值设置为 300 只是为了尝试它是否有效。例如,我的“movies.list”文件约为 80MB,使用此脚本 300 秒在我的数据库中创建了大约 25000 行。这不起作用,因为我什至还没有到达以“B”开头的电影。

我知道我可以将 MAX_EXECUTION_TIME 设置为 0(无限制),但将来我不希望此数据库位于我的本地主机上。我希望它在我的网络服务器上,并且据我所知,我的网络服务器主机 MAX_EXECUTION_TIME 设置为 90。

您有什么想法如何处理这个问题吗?

最佳答案

您可以:使用set_time_limit(sec)或者(更好)从 command line 运行您的脚本通过 cron 条目。这样您将避免许多其他非 php 相关的超时问题。

关于php - 读取巨大的文本文件并将每一行存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10270162/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com