⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rss.php

📁 极限网络智能办公系统 Office Automation V3.0官方100%源代码.
💻 PHP
字号:
<?
class myoa_rss{

var $file;
var $data;
var $rss_channel = array();
var $currently_writing = "";
var $main = "";
var $item_counter = 0;

function startElement($parser, $name, $attrs) {
   	switch($name) {
   		case "RSS":
   		case "RDF:RDF":
   		case "ITEMS":
   			$this->currently_writing = "";
   			break;
   		case "CHANNEL":
   			$this->main = "CHANNEL";
   			break;
   		case "IMAGE":
   			$this->main = "IMAGE";
   			$this->rss_channel["IMAGE"] = array();
   			break;
   		case "ITEM":
   			$this->main = "ITEMS";
   			break;
   		default:
   			$this->currently_writing = $name;
   			break;
   	}
}

function endElement($parser, $name) {
	  if($name=="IMAGE")
	     $this->main="CHANNEL";
   	$this->currently_writing = "";
   	if ($name == "ITEM") {
   		$this->item_counter++;
   	}
}

function characterData($parser, $data) {

	if($this->ENCODE_FLAG==2)
	   $data=iconv("UTF-8", "GB2312", $data);

	if ($this->currently_writing != "") {//echo $this->main."=>".$this->currently_writing."<br>";
		switch($this->main) {
			case "CHANNEL":
				if (isset($this->rss_channel[$this->currently_writing])) {
					$this->rss_channel[$this->currently_writing] = $data;
				} else {
					$this->rss_channel[$this->currently_writing] = $data;
				}
				break;
			case "IMAGE":
				if (isset($this->rss_channel[$this->main][$this->currently_writing])) {
					$this->rss_channel[$this->main][$this->currently_writing] .= $data;
				} else {
					$this->rss_channel[$this->main][$this->currently_writing] = $data;
				}
				break;
			case "ITEMS":
				if (isset($this->rss_channel[$this->main][$this->item_counter][$this->currently_writing])) {
					$this->rss_channel[$this->main][$this->item_counter][$this->currently_writing] .= $data;
				} else {
					$this->rss_channel[$this->main][$this->item_counter][$this->currently_writing] = $data;
				}
				break;
		}
	}
}

function myoa_rss($file="")
{
  $this->file=$file;
  
  $this->data="";
  if($file!="")
  {
     $fp=@fopen($file,"rb");
     while(!feof($fp))
        $this->data .= fread($fp,4096);
     fclose($fp);
  }
}//rss

function parse($data="")
{
		$this->xml_parser = xml_parser_create();
    xml_set_object($this->xml_parser, &$this);
    xml_set_element_handler($this->xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($this->xml_parser, "characterData");
    
		if($data=="")
		   $data=$this->data;
		
		if(substr($data,0,1)!="<")
       $this->data=substr($data,strpos($data,"<"));
       
    $xml=substr($data,0,strpos($data,">"));
    if(stristr($xml,"utf-8"))
       $data=iconv("utf-8","gb18030",$data);

  	if (!xml_parse($this->xml_parser, $data, feof($fp)))
  	{
  		//die(sprintf("XML error: %s at line %d",
  		//			xml_error_string(xml_get_error_code($this->xml_parser)),
  		//			xml_get_current_line_number($this->xml_parser)));
  	}
  	xml_parser_free($this->xml_parser);
}
function getTitle()
{
	return $this->rss_channel["TITLE"];
}//Title
 
function getContent($rows_count=10)
{
  if (isset($this->rss_channel["ITEMS"]) && count($this->rss_channel["ITEMS"]) > 0)
  {
  		for($i = 0;$i < count($this->rss_channel["ITEMS"]);$i++)
  		{
  			if($rows_count!=0 && $i>=$rows_count)
  			   break;
  			$itemTitle=strip_tags($this->rss_channel["ITEMS"][$i]["TITLE"]);
  			$itemLink=$this->rss_channel["ITEMS"][$i]["LINK"];
  			if($this->rss_channel["ITEMS"][$i]["PUBDATE"]!="")
  			{
  			   $TimeStamp=strtotime($this->rss_channel["ITEMS"][$i]["PUBDATE"]);
  			   if($TimeStamp!=-1)
  			      $itemPubDate=" (".date("Y-m-d H:i",$TimeStamp).")";
  			}
  			
  			$OUTPUT_HTML.= "·<a href=\"".$itemLink."\" target=\"_blank\"";
  			if ($rows_count!=0 && strlen($itemTitle)>64)
  			   $OUTPUT_HTML.= " title=\"".$itemTitle."\">".csubstr($itemTitle,0,60)."...";
  			else
  			   $OUTPUT_HTML.= ">".$itemTitle;
  			$OUTPUT_HTML.= "</a>".$itemPubDate."<br>";
  		}//for
  }
 return $OUTPUT_HTML;
 }//Content
}//class
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -