作为主题,我对变量的内容有疑问。
在此变量中插入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
是保存在配置文件中的变量,因此您看不到它的值。
感谢您的回答
答案 0 :(得分:0)
您是否尝试用gzcompress替换base64?
我以前遇到过类似的问题,我用它效果很好。我做了一个小基准测试,内存不是一个很大的问题。