3

件名として、変数の内容に問題があります。この変数内にはbase64、(xml から抽出された) ファイルの が挿入され、ファイル システムにファイルを保存するための PHP の base64 が挿入されます。base64小さなファイル(約 10MB) がある限り、すべて問題ありませんbase64。変数の値をデバッグ表示すると、すべてのbase64文字列が表示されるようです。

ファイルが正しく作成されて保存されるため、問題はファイルの保存ではなく、変数の内容です。php.ini に設定する制限はありますか? または、問題を解決する方法はありますか? また、文字列をチャンクまたは配列に分割しようとしましたが、問題は残ります。

XML からデータを抽出するために使用するコードを挿入します。

    $reader = new XMLReader(); 

    if (!$reader->open($GLOBALS['conf']['filepath'] . '/' . $xmlfile)) { 
        print "Error to open XML: $xmlfile\n"; 
    } else { 
        while ($reader->read()) { 
            $name = $reader->name; 
            $type = $reader->nodeType; 
            if (($type == XMLReader::ELEMENT) && in_array($name, $allowedNodes)) { 
                $xml = $reader->readOuterXml(); 

                $doc = new DOMDocument('1.0', 'UTF-8'); 
                $xml = simplexml_import_dom($doc->importNode($reader->expand(), true)); 

                //Other code
            } 
        } 
    }

注: 変数$allowedNodesは構成ファイルに保存される変数であるため、その値は表示されません。

答えてくれてありがとう

4

1 に答える 1

0

base64をgzcompressに置き換えようとしましたか?

私は以前に同様の問題を抱えていましたが、それを使用して良い結果が得られました。私は小さなベンチマークを行いましたが、メモリは大きな問題ではありません。

于 2013-01-30T16:24:45.920 に答える