gpt4 book ai didi

php - PHP 的 json_parse 的内存耗尽错误

转载 作者:可可西里 更新时间:2023-11-01 13:46:06 27 4
gpt4 key购买 nike

我有以下代码:

<?php
$FILE="giant-data-barf.txt";

$fp = fopen($FILE,'r');

//read everything into data
$data = fread($fp, filesize($FILE));
fclose($fp);

$data_arr = json_decode($data);
var_dump($data_arr);
?>

giant-data-barf.txt 文件,顾名思义,是一个巨大的文件(目前为 5.4mb,但可能会达到数 GB)

当我执行此脚本时,出现以下错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in ........./data.php on line 12

我查看了可能的解决方案,并看到了这个:

ini_set('memory_limit','16M');

我的问题是,我应该设置多大的内存有限制吗?还是有更好的方法来解决这个问题?

最佳答案

这是一个非常糟糕的想法,也就是说,你需要设置

ini_set('memory_limit',filesize($FILE) + SOME_OVERHEAD_AMOUNT);

因为您正在将整个内容读入内存。您可能必须将内存限制设置为文件大小的两倍,因为您想要JSON_DECODE

请注意,在 Web 服务器上,这将消耗大量内存,如果文件如您所说的那样大,您不应该这样做!!!

它真的是一个巨大 JSON blob 吗?在用 PHP 解析之前,您应该考虑将其转换为数据库或可以使用随机访问或行访问的其他格式。

关于php - PHP 的 json_parse 的内存耗尽错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939643/

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