📄 rss.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 + -