codeigniter从模型传递动态popluating数组到

时间:2016-01-03 17:37:29

标签: php arrays xml codeigniter saxparser

嗨我需要一些关于传递正在模型中填充的数组来查看的帮助。 让我解释: 实际上,我正在使用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加载到内存缓冲区中。

0 个答案:

没有答案