2014-09-29 87 views
0

我想json encode一個格式良好的XML字符串到一個SimpleXMLElement對象。但是會發生什麼,它是breaksexitjson編碼打破大字符串

我試着用小xml文件和工作正常,問題是大xml文件

下面是代碼:

<?php 
$directory = "lookup.xml"; 
$xmlContent = file_get_contents($directory); // get contents of lookup 
print_r(simplexml_load_string($xmlContent)); 
$arrayXml = json_decode(json_encode(simplexml_load_string($xmlContent)),TRUE); 
print_r($arrayXml); 

lookup.xml文件:

1. lookup.xml - 2 MB (works fine) 
2. lookup.xml - 13 MB (Not working) 

是因爲一個大文件或一些字符串打破?

+0

這就是爲什麼這種方式並不完美。爲什麼不正常穿過它? – Ghost 2014-09-29 09:08:13

+0

你得到的錯誤信息是什麼? – TiMESPLiNTER 2014-09-29 09:09:22

+0

致命錯誤:允許內存大小爲1048576字節耗盡(試圖分配12286130字節)。現在我通過'ini_set('memory_limit','100M');'解決了這個問題 – 2014-09-29 09:22:42

回答

0

什麼是確切的錯誤信息,將13Mb加載到XML中而不是JSON中會佔用大量內存,什麼是服務器上的內存限制。使用您的代碼,我已經嘗試了7.5 MB的網站地圖和 腳本末尾的memory_get_peak_usage(),它顯示了119MB的使用率,根據XML本身,它幾乎是兩次。