[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