6

对不起我的英语不好 :)

我有 NuSOAP 版本 0.9.5。我在尝试获取大数据时遇到了一个 php 错误:

PHP致命错误:允许的内存大小为134217728字节已用尽(试图分配27255652字节)

堆栈跟踪显示问题出在 varDump 方法中。

我的解决方案是:

我已将 varDump 方法(在 nusoap.php 中)更改为:

function varDump($data) {
    $ret_val = "";
    if ($this->debugLevel > 0) {
        ob_start();
        var_dump($data);
        $ret_val = ob_get_contents();
        ob_end_clean();
    }
    return $ret_val; 
}

然后重置

$GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel']

到 0(从 9)。在 class.nusoap_base.php 和 nusoap.php 中。

这对我有帮助。

有人对此有何评论吗?或者也许更好的解决方案?

4

1 回答 1

1

非常感谢和尊重 Aaron Mingle,他为 NuSOAP 内存不足问题找到了真正的解决方案。可以在这里找到解决方案:

https://sourceforge.net/p/nusoap/discussion/193578/thread/12965595/

我已经实施并立即进行了测试,现在我很高兴,因为它运行良好。就我而言,我有大约 45 MB 的 SOAP 消息大小(包括大约 30 个 base64 编码的 pdf 文件),甚至 2 GB 的 PHP 内存也没有帮助。所以我尝试了 Aaron Mingle 的解决方案,它是一个很好的解决方案,仅授予 PHP 384 MB 内存。

也向 Alexey Choporov +1,因为他的建议也是必需的。所以这两个修改都是 NuSOAP 中必须有的补丁,它可以很好地处理更大的消息。

于 2016-05-18T11:34:02.620 回答