PHP で解析している非常に大きな xml データ フィードがあるので、simpleXML が毎回失敗するため、xmlReader を使用しています。xmlReader/simpleXML ハイブリッド コードを使用しても、まだ失敗するため、残念ながらすべて xmlReader で実行しています。
そのため、ループに関連して xmlReader をどこで開閉するかについて混乱しています。可能な限り最高のメモリ管理が必要です。
****Open reader Here????
Foreach ($modelArray as $model)// there are 10000 models
****OR open reader Here???
if(!$reader->open($request_url)){
echo "Error";
break;
}
while ($reader->readToNext('Product'){ // There are 500 Products per model
//do my node processing here. Grab nodes and add to mysql DB
}
return array('msg' => $msg,'addedProdsPerManu' =>$counter_addedProdsManu);
****Close Reader HERE?
}//close foreach
****OR Close Reader HERE?
このプログラムが最後まで実行されるように、メモリを最も効率的に使用するためのアドバイスをいただければ幸いです。
ありがとうございました