garlian
Новичок
Не получается получить содержимое
Есть xml файл : http://api.torment.ru/clan.pl?api_code=fTzre9B9rjrGAkUDq7eWZhmD8nd8D1&clan=God+Messengers
Нужно получить его содержимое, особенно то что в USERNAME_HTML.
Вот код, но почему-то массив $members возвращает пустое значени, я не пойму где ошибка?
Кто в этом понимает, откликнитесь пожалуйста!
Есть xml файл : http://api.torment.ru/clan.pl?api_code=fTzre9B9rjrGAkUDq7eWZhmD8nd8D1&clan=God+Messengers
Нужно получить его содержимое, особенно то что в USERNAME_HTML.
Вот код, но почему-то массив $members возвращает пустое значени, я не пойму где ошибка?
PHP:
<?php
$members = array();
$currentMember = null;
$index = null;
function saxStartElement($parser,$name,$attrs)
{
global $currentMember,$index;
switch($name)
{
case 'members':
$members = array();
break;
case 'user':
$currentMember = array();
if (in_array('id',array_keys($attrs)))
$currentMember['id'] = $attrs['id'];
break;
default:
$index = $name;
break;
};
}
function saxEndElement($parser,$name)
{
global $members,$currentMember,$index;
if ((is_array($currentMember)) && ($name=='id'))
{
$members[] = $currentMember['id'];
$currentMember = null;
};
$index = null;
}
function saxCharacterData($parser,$data)
{
global $currentMember,$index;
if ((is_array($currentMember)) && ($index))
$currentMember[$index] = $data;
}
$parser = xml_parser_create();
xml_set_element_handler($parser,'saxStartElement','saxEndElement');
xml_set_character_data_handler($parser,'saxCharacterData');
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,false);
$xml = join('',file('http://api.torment.ru/clan.pl?api_code=fTzre9B9rjrGAkUDq7eWZhmD8nd8D1&clan=God+Messengers'));
if (!xml_parse($parser,$xml,true))
die(sprintf('Ошибка XML: %s в строке %d',
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
xml_parser_free($parser);
print_r($members);
?>