douqiao5440 2013-01-14 10:05
浏览 38

Codeigniter内存从XML Object to Array耗尽

I have a PHP website was build by using Codeigniter framework. I always got the following error message form Apache log:

PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 8192 bytes) in /usr/local/apache2/htdocs/mywebsite/application/helpers/my_helper.php on line 150

About my_helper.php on line 150 is the following:

function objectToArray( $object ){
if( !is_object( $object ) && !is_array( $object ) )
    {           
        return $object;
    }
    if( is_object( $object ) )
    {
        $object = get_object_vars( $object );   # <<<<<<< Line 150
    }   
    return array_map( 'objectToArray', $object );  
}

The function of "objectToArray" is using to process XPATH result object form XML file(I use simplexml_load_file to load the XML file).

# The example to pass XML object by following: #

$xmlObject = simplexml_load_file(PATH_TO_XML_FILE, 'SimpleXMLElement', LIBXML_NOCDATA);
$data = $xmlObject->xpath(MY_XPATH);
$ary = objectToArray($data);

Also I tried to set the memory_limit value to unlimit(ini_set('memory_limit',-1)), but it still have the error.

Is there have any tuning about hardware or programing to prevent the problem? Thanks!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?
    • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
    • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
    • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
    • ¥500 火焰左右视图、视差(基于双目相机)