[Ossm-members] phpNuke backend.php [NEWS]
Tomislav Markovski
tome at set.com.mk
Fri Apr 16 12:15:20 UTC 2004
> Da ne ima nekoj gotova skripta-parser na backend.php fajlot, za da
> stavime vesti od linux.net.mk na lugola.ossm.org.mk Mi se smaci od
> kodiranje eejej !! :P
Јас се извинувам, заборавив дека листава иде и на news (од каде што си
ја пратил поракава). Еве го кодот, ако не можеш со attachment-от од
претходната порака:
-----
<?php
$_item = array();
$_depth = array();
$_tags = array("dummy");
function initArray()
{
global $_item;
$_item = array ("TITLE"=>"", "LINK"=>"",
"DESCRIPTION"=>"", "URL"=>"");
}
function startElement($parser, $name){
global $_depth, $_tags, $_item;
if (($name=="ITEM") ||
($name=="CHANNEL")
|| ($name=="IMAGE")) {
initArray();
}
@$_depth[$parser]++;
array_push($_tags, $name);
}
function endElement($parser, $name){
global $_depth, $_tags, $_item;
array_pop($_tags);
$_depth[$parser]--;
switch ($name) {
case "ITEM":
echo "<p><a href=\"{$_item['LINK']}
\">" .
"{$_item['TITLE']}</a></p>\n";
initArray();
break;
case "IMAGE":
echo "<a href={$_item['LINK']}>" .
"<DEFANGED_IMG src={$_item
['URL']} " .
"alt={$_item['TITLE']};
border=0></a>\n<br />\n";
initArray();
break;
case "CHANNEL":
echo "<h3>{$_item['TITLE']}</h3>\n";
initArray();
break;
}
}
function parseData($parser, $text){
global $_depth, $_tags, $_item;
$crap = preg_replace ("/\s/", "", $text);
if ($crap) {
$text = preg_replace ("/^\s+/", "", $text);
if (@$_item[$_tags[$_depth[$parser]]]) {
$_item[$_tags[$_depth[$parser]]] .=
$text;
} else {
$_item[$_tags[$_depth[$parser]]] =
$text;
}
}
}
function parseRDF($file){
global $_depth, $_tags, $_item;
$xml_parser = xml_parser_create();
initArray();
xml_set_element_handler
($xml_parser, "startElement", "endElement");
xml_set_character_data_handler
($xml_parser, "parseData");
$fp = fopen ($file, "r") or die ("Could not
open $file for input");
while ($data = fread ($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof
($fp))) {
die (sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code
($xml_parser)),
xml_get_current_line_number
($xml_parser)));
}
}
fclose($fp);
xml_parser_free($xml_parser);
}
parseRDF
("http://www.linux.net.mk/feed.php");
?>
More information about the Ossm-members
mailing list