我有JSON文件,其中包含类似值的JSON
{...} {...}...
我可以通过将其包装在[]
中并在花括号之间添加逗号来将其转换为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
的代码,但我不确定我应该把它放在哪里(以前从未使用过它)。
答案 0 :(得分:0)
添加
set_time_limit(0);
在打开PHP标记之后的代码顶部。
这将允许脚本无限期运行而不会超时。