PHP - 破碎的可变内容

时间:2013-01-30 08:46:28

标签: php

作为主题,我对变量的内容有疑问。 在此变量中插入base64文件(从xml中提取)和PHP base64以将文件保存在文件系统中。 只要有小文件(大约10MB),一切都很好......但base64文件大base64似乎在9999993个字符后被“破坏”。 我说似乎是因为如果我去调试显示变量的值,我会看到所有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是保存在配置文件中的变量,因此您看不到它的值。

感谢您的回答

1 个答案:

答案 0 :(得分:0)

您是否尝试用gzcompress替换base64?

我以前遇到过类似的问题,我用它效果很好。我做了一个小基准测试,内存不是一个很大的问题。