对于PHP的SimpleXML,什么尺寸的xml文件太大了?它是否取决于字节中的节点嵌套深度的大小?

问题描述:

我想我很想在标题中提出这一切。对于PHP的SimpleXML,什么尺寸的xml文件太大了?它是否取决于字节中的节点嵌套深度的大小?

我遇到的问题是我试图用SimpleXML解析一个XML文件,有些时候无法读取xml,但有时是成功的。我只能认为这取决于内存不足的脚本。

我有200MB XML产品订阅源,但它只能嵌套到最多4层左右。为此使用SimpleXML可以吗?这只是一个增加我的内存限制在php.ini(我无法做到这一点,因为我的服务器施加最大限度的测试)?

谢谢!

+0

刚刚讨论过这种情况,这个人有一个他加载的HTML,即使这个文件只有350mb,就像他说的,PHP需要更多的内存来解析它到一个对象,我认为你有同样的问题:https://*.com/questions/46662542/cant-load-too-big-html-file-when-grab/46662624#46662624 – teeyo

+0

谢谢!所以只需增加php ini中的内存限制就可以解决,我仍然可以使用SimpleXML进行解析?我刚才写了我所有的用于SimpleXML的逻辑,因为文件太大,必须切换到另一个XML解析器,这将是一个巨大的麻烦。 –

+0

我想即使我的内存限制设置的高于文件大小,PHP仍然使用内存负载将XML写入对象并解析它,以便它仍然可能导致错误? –

PHP可以处理的最大文件大小以及系统可以处理的最大文件大小是两个不同的事情。您必须调整PHP可以访问多少内存,并且SimpleXML可以使用。

+0

因此理论上,如果php.ini中的内存限制足够高,SimpleXML应该能够处理任何文件大小?我们对性能没有太大的困扰,因为它会作为一个cron任务运行。 –

+1

是的,我每天都会导入XML格式的SimpleXML文件,工作得很好!所以如果你的文件是200MB,我不会担心。 – KFoobar

+0

嗯,这很奇怪,我只是不断收到'加载XML失败',没有错误信息。哎呀。我会尝试另一个解析器 –