Парсер погоды в блоке

Главные вкладки

Аватар пользователя lena_elena4 lena_elena4 31 августа 2009 в 23:32

Через админку создаю новый блок, вставляю в него следующий код:

<?php
$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']; - результирующий код такой

                        <h4>Погода</h4>
               
        <div class="content"></div>

Помогите, пожалуйста, бьюсь-бьюсь, уже все варианты перепробовала. Что делать?

Комментарии

Аватар пользователя lena_elena4 lena_elena4 1 сентября 2009 в 21:50

Неправда. print_r($heap) - массив распечатывается на месте блока, уберите комментарии там, где у меня закомментировано print_r($heap). И опять же: вне Друпала этот код рабочий.