2010-11-09 95 views
1

我使用的是php模塊xml_parser,我需要設置允許的最大內存大於默認值,或者做些事情以避免崩潰,xml大於標準允許的範圍。 順便說一句,我用http://www.bin-co.com/php/scripts/xml2array/來解析XML,但如果它大於13K它只是在第16行崩潰,這是xml_parse_into_struct($parser, trim($contents), $xml_values); 它不是關於設置memory_limit也是,它崩潰一遍又一遍,我試着將其設置爲更多但我仍然得到相同的錯誤,這裏是錯誤:Fatal error: Allowed memory size of 549453824 bytes exhausted (tried to allocate 24 bytes) in /www/file on line 16。 你能提出另一個功能嗎? (如果你發現我的情況下,另一種更好)xml解析器問題

+2

你試過切換到'XMLReader'類嗎?它不會在內存中加載整個xml文檔,所以你可以使用真正的大文件。 – stillstanding 2010-11-09 10:10:18

+0

許多重複:http://stackoverflow.com/search?q=PHP+memory_limit – 2010-11-09 10:10:50

回答

1

XMLReaderSimpleXML,並DOM是這個古老根據外籍人士的工具,所有的更好的選擇 - 但是,只有第一個是有可能幫助很多與你真正的問題,這就是讀取XML時超出了您在PHP配置中設置的memory_limit限制。要麼移動到像XMLReader這樣的「pull parser」,要麼增加你的memory limit

+0

10倍,我傳遞給simpleXML和增加memory_limit – decebal 2010-11-22 11:08:00