我有一个JSON JSON文件就像值找出为什么fopen()过早结束?
{...} {...}...
我可以通过[]
包裹,并添加大括号之间的逗号将其转换为JSON,但是这不是问题。
我在文件中有大约40000个这样的对象,我需要导入到WordPress中。现在,使用wp_remote_get()
是不可能的,因为该文件太大,我得到错误(用尽内存),所以我用fopen()
。我有执行当我点击导入,并在其中,我有这样的代码AJAX功能:
$data = fopen('url-to-local-file', 'r');
while (! feof($data)) {
$json_line = fgets($data);
$json_array = json_decode($json_line, true);
// Import happens here
}
fclose($data);
这工作,有点。大约12000个条目后,我收到消息,一切进口都很好。现在,应该导入的帖子数量大约为3000(具有不同元值的相同条目),但我只能获得大约900个导入。没有图像下载,只需从数组中获取数据并将其放在wp_insert_post()
的帖子中,然后进行一些元数据更新。
有什么办法可以看到为什么6分钟后流停止?错误日志是空的。我看到一些使用try
和catch
的代码,但我不知道我应该把它放在哪里(以前从未使用它)。
您是否尝试过'set_time_limit(0);'并确认您的主机没有为所有PHP进程设置6分钟的最大执行时间? –
我在我的流浪者身上进行本地测试,在哪里设置时间限制?在文件的顶部或'while'循环中? –
添加了答案。让我知道如果有帮助 –