stdmax.com STUDIO MAX
скрипты главная | скрипты | сайты | графика | wap, pda-сайты | баннеры | контакты | ссылки | карта сайта

Скрипты

Автор: М. Мазурин
Использовать скрипты разрешаю :)
Вопросы, предложения?

PHP

» Вычисление диапазонов из произвольного списка дат
» Пробежаться по всем дням и часам недели
» Печатаем строчки :)
» Карточная страница
» Простейший RDF XML парсер
» PHP Uploader

HTML

» Контролируем favicon.ico

Простейший RDF XML парсер

Пример RDF документа: http://nds1.nds.nokia.com/uaprof/N6290r100.xml.


<?php

// класс парсера (rdf simple parser)
class rdf_sparser
{
var 
$x$result;

function 
rdf_sparser($s) // $s - XML
{
$x = &$this->x;
$x = array
(
1 => 2,
2 => array(),
);
$p xml_parser_create('UTF-8');
xml_set_object($p$this);
xml_parser_set_option($pXML_OPTION_CASE_FOLDING0);
xml_set_element_handler($p'_xml_start''_xml_end');
xml_set_character_data_handler($p'_xml_data');
xml_parse($p$s)
or die (
sprintf('XML error: %s at line %d',
xml_error_string(xml_get_error_code($p)),
xml_get_current_line_number($p)));
xml_parser_free($p);
$this->result $x[2];
}

function 
_xml_start($p$n$a)
{
$x = &$this->x;
if (
'rdf:description' == ($l strtolower($n)))
{
$x[1] = 0;
}
elseif (
== ++$x[1]
&& 
false !== ($p strpos($l':'))
&& 
'rdf' !== substr($l0$p++))
{
$x[3] = &$x[2][substr($n$p)];
$x[3] = '';
}
elseif (
'rdf:li' == $l
&& !empty($x[3]))
{
$x[3].= ' | ';
}
}

function 
_xml_end($p$n)
{
$x = &$this->x;
--
$x[1];
}

function 
_xml_data($p$s)
{
$x = &$this->x;
if (
== strlen($s rtrim($s))
|| 
'<![CDATA[' == $s
|| ']]>' == $s
|| == $x[1])
{
return;
}
$x[3].= $s;
}
}

// считываем RDF файл (WAP Profile)
// file_get_contents PHP 4 >= 4.3.0
$s file_get_contents('http://nds1.nds.nokia.com/uaprof/N6290r100.xml');

// парсим RDF XML документ
$rdf = new rdf_sparser($s);

// печатаем результат
echo '<pre>';
print_r($rdf->result);
echo 
'</pre>';

?>
Rambler's Top100 службы мониторинга серверов Megastock Яндекс цитирования
2010, STUDIO MAX (vipset)
сайты, баннеры и программы для интернета
Россия, г. Новосибирск | контакты