PHP-断开的变量内容
作为主题,我对变量的内容有一个问题。 在该变量中插入一个文件的PHP-断开的变量内容,php,Php,作为主题,我对变量的内容有一个问题。 在该变量中插入一个文件的base64(从xml中提取)和PHP base64以将文件保存在文件系统中。 只要有小文件(大约10MB),一切都很好。。。但是,文件较大的base64在9999999 3个字符后,似乎“断开”了base64。 我说似乎是因为如果我去调试显示变量的值,我会看到所有的base64字符串 问题不在于保存文件,因为文件是正确创建和保存的,而在于变量的内容。php.ini是否有任何限制?还是有办法解决这个问题?我还尝试将字符串拆分为块或数组
base64
(从xml中提取)和PHP base64以将文件保存在文件系统中。
只要有小文件(大约10MB),一切都很好。。。但是,文件较大的base64
在9999999 3个字符后,似乎“断开”了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
是保存在配置文件中的变量,因此您看不到它的值
谢谢你的回答你试过用gzcompress替换base64吗
不久前我也遇到过类似的问题,我使用它并取得了很好的效果。我做了一个小的基准测试,内存不是个大问题。您使用的是什么版本的PHP?您是否尝试更改php.ini配置文件中的
内存限制
指令?内存限制
值为512M;PHP版本是5.3.1您的进程需要花费多少?如何检查PHP进程?我有一台装有Windows的PC,OSXML文件是从.NET程序创建的。是否可以创建压缩的base64代码?是。我在处理XML节点之后对它们进行了压缩。我使用了DomDocument而不是XMLReader,但是结果并没有什么不同。。。还有其他解决办法吗?因为使用gzcompress迫使我更改软件需求。另一个解决方案可以在XML中细分为块?是的。您可以将XML树细分为您想要的任何部分。