php加载大json文件

时间:2015-05-11 14:17:05

标签: php json

我创建了一个本地Web应用程序来显示和交互数据,我得到了一个大的Json文件(大约250 Mo)。我有几个函数,以显示不同的数据,但目前每个函数都是通过读取和解析Json文件开始的:

$string = file_get_contents("myFile.json");
$json_a = json_decode($string, true);

事情是它很慢(大约4秒),因为文件很大...所以我想一劳永逸地解析Json文件并将解析后的数据存储在内存中,以便每个函数都可以使用它:

session_start();
$string = file_get_contents("myFile.json");
$_SESSION['json_a'] = json_decode($string, true);

然后在我的函数中使用$_SESSION['json_a']。 但是当函数访问此$_SESSION['json_a']变量时出现错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 195799278 bytes)

我认为这是因为文件太大了..但是为什么在使用变量时它会崩溃而不是在它构建时崩溃?为什么我可以使用我的第一个解决方案(每次解析),如果它对于内存来说太大了?

最后我的真正问题是:我如何优化它? (我知道sql数据库会好很多但我碰巧有json数据)

0 个答案:

没有答案