嗨我需要一些关于传递正在模型中填充的数组来查看的帮助。 让我解释: 实际上,我正在使用SAX XML解析器来解析来自外部链接的巨大xml提要。 我被限制只使用32 MB内存,并且不能将xml feed保存为本地文件。所以使用SAX,在while循环中,我读取4mb的feed,然后可以在数组中回显或分配,然后释放SAX解析器对象以释放内存,依此类推。 现在,XML正在被准确地解析,但整个事情正在模型中完成。如何将读取源传递给查看,而循环连续读取源。 代码是
$parser = xml_parser_create();
xml_set_element_handler($parser, Array(&$this, "startElements"), Array(&$this, "endElements"));
xml_set_character_data_handler($parser, Array(&$this, "characterData"));
// open xml file
if (!($handle = fopen($url, "r"))) {
die("could not open XML input");
}
while ($data = fread($handle, 4096)) { // read xml file
xml_parse($parser, $data); // start parsing an xml document
}
xml_parser_free($parser); // free/delete the parser
public function characterData($parser, $data)
{
global $products, $elements;
if (!empty($data)) {
if ($elements == 'NAME' || $elements == 'PRICE' || $elements == 'PRODUCTURL' || $elements == 'PRODUCTID' || $elements == 'CATEGORY'|| $elements == 'IMAGEURL') {
$products[count($products) - 1][$elements] = trim($data);
}
}
}
请帮助我如何在视图中显示products数组,因为循环不断填充products数组,并且我无法将整个feed加载到内存缓冲区中。