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

NuSOAPのメモリ不足の問題で見つかった実際の解決策について、AaronMingleに感謝します。解決策はここにあります:

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

私はすでに実装してすぐにテストしましたが、完璧に機能するので今は満足しています。私の場合、約45 MBのSOAPメッセージサイズ(base64でエンコードされた最大30のpdfファイルを含む)があり、PHP用の2GBのメモリでさえ以前は役に立ちませんでした。そこで、私はAaron Mingleのソリューションを試しましたが、PHPに付与されたメモリが384MBしかない優れたソリューションでした。

彼の提案も必要なので、AlexeyChoporovにも+1します。したがって、両方の変更は、より大きなメッセージで適切に機能するNuSOAPのパッチが必要です。

于 2016-05-18T11:34:02.620 に答える