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树细分为您想要的任何部分。