Парсер погоды в блоке
Через админку создаю новый блок, вставляю в него следующий код:
$cast = 0;
function start_element($par, $name, $atr){
global $heap, $cast;
if($name == 'FORECAST'){
$heap[] = array('date' =>$atr);
$cast = 1;
}
else if($cast)
$heap[count($heap)-1][$name]=$atr;
}
function end_element($par, $name){
global $cast,$heap;
if($name == 'FORECAST')
$cast = 0;
/*print '<pre>';
print_r($heap);
print '</pre>';
*/
}
$data = file_get_contents('http://informer.gismeteo.ua/xml/33345_1.xml');
if(!empty($data)) {
$XMLparser = xml_parser_create();
xml_set_element_handler($XMLparser, 'start_element', 'end_element');
if (!xml_parse($XMLparser, $data)) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
$n = count($heap);
for ($i=0; $i<$n; $i++){
print $heap[$i]['date']['MONTH'];
}
xml_parser_free($XMLparser);
}
?>
Ставлю формат php-кода.
В итоге на странице - пусто и ошибок никаких нет.
Через file_get_contents файл точно грузится, делала print_r($heap) - массив, в который собираю элементы xml-файла, выводится полностью весь массив, все элементы на месте.
Пробую print $heap[$i]['date']['MONTH']; - результирующий код такой