Codeigniter フレームワークを使用して構築された PHP Web サイトがあります。私は常にApacheログから次のエラーメッセージを受け取りました:
PHP 致命的なエラー: 行 150 の /usr/local/apache2/htdocs/mywebsite/application/helpers/my_helper.php で 1073741824 バイトの許容メモリ サイズが使い果たされました (8192 バイトを割り当てようとしました)
150 行目の my_helper.php については次のとおりです。
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 );
}
"objectToArray" の関数は、XPATH 結果オブジェクトを XML ファイルから処理するために使用しています (私は simplexml_load_file を使用して XML ファイルを読み込みます)。
# 次のように XML オブジェクトを渡す例: #
$xmlObject = simplexml_load_file(PATH_TO_XML_FILE, 'SimpleXMLElement', LIBXML_NOCDATA);
$data = $xmlObject->xpath(MY_XPATH);
$ary = objectToArray($data);
また、memory_limit の値を unlimit(ini_set('memory_limit',-1)) に設定しようとしましたが、それでもエラーが発生します。
問題を回避するために、ハードウェアまたはプログラミングに関する調整はありますか? ありがとう!