Home >php教程 >php手册 >如何用PHP把RDF内容插入Web站点之中(4)

如何用PHP把RDF内容插入Web站点之中(4)

WBOY
WBOYOriginal
2016-06-21 09:02:20865browse

 

// this is an array of arrays, with each array element representing an
// each outer array element is itself an associative array
// with keys ("title", "link", "description")
$items = array(),

// opening tag handler
function elementBegin($parser, $name, $attributes)
{
global $currentTag, $flag,
$currentTag = $name,
// set flag if entering or block
if ($name == "ITEM")
{
$flag = 1,
}
else if ($name == "CHANNEL")
{
$flag = 2,
}
}

// closing tag handler
function elementEnd($parser, $name)
{
global $currentTag, $flag, $count,
$currentTag = "",

// set flag if exiting or block
if ($name == "ITEM")
{
$count++,
$flag = 0,
}
else if ($name == "CHANNEL")
{
$flag = 0,
}
}

// character data handler
function characterData($parser, $data)
{
global $currentTag, $flag, $items, $count, $channel,
$data = trim(htmlspecialchars($data)),
if ($currentTag == "TITLE" || $currentTag == "LINK" ||
$currentTag ==
"DESCRIPTION")
{
// add data to $channels[] or $items[] array
if ($flag == 1)
{
$items[$count][strtolower($currentTag)] .=
$data,
}
else if ($flag == 2)
{
$channel[strtolower($currentTag)] .= $data,
}
}

}

// create parser
$xp = xml_parser_create(),

// set element handler
xml_set_element_handler($xp, "elementBegin", "elementEnd"),
xml_set_character_data_handler($xp, "characterData"),
xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, TRUE),
xml_parser_set_option($xp, XML_OPTION_SKIP_WHITE, TRUE),

// read XML file
if (!($fp = fopen($file, "r")))
{
die("Could not read $file"),
}

// parse data
while ($xml = fread($fp, 4096))
{
if (!xml_parse($xp, $xml, feof($fp)))
{
die("XML parser error: " .
xml_error_string(xml_get_error_code($xp))),
}
}

// destroy parser
xml_parser_free($xp),

// now iterate through $items[] array
// and print each item as a table row
foreach ($items as $item)
{
echo "tr
>

href=" . $item["link"] . ">" . $item["title"] .
"
br>" . $item["description"] . " tr>", }

?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn