PHP MyRSS - 用于创建RSS源的类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP MyRSS - 用于创建RSS源的类相关的知识,希望对你有一定的参考价值。

<?php
/**
 * ================================================
 * File: myrss.class.php
 * Version: 0.5 BETA
 * License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported 
 * Author: Leon Giesenkämper, 2011
 * **Description:
 *         **Eine RSS Klasse zum einfachen erstellen von Einträgen und Feeds!
 * Thanks to: The Bigforum Team (http://www.bigforum-support.de)
 * and my Freehost: PHPfriends(http://www.php-friends.de)
 */
 /*
  * @author    Leon Giesenkämper(alias: Darksider3,dk2-games,dk-adds,dk2-adds)
  * @website   http://darksider3.pf-control.de
  * @copyright 2011 Leon Giesenkämper
  * @license   Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
  * @package   MyRSS
 */
class myrss
{
    /**
     * Der gesamte XML/RSS Code für die seite, ind er variable gesafte
     * @access private
     * @var    string 
     */
    private $xmlcode;
    /*
     *Charest/Zeichensatz für die feeds
     * @access protected
     * @var    string
     * 
     */
     //@todo: Make an "Change hader" Option
    protected $charset="ISO-8859-15";
    
    
    /**
     * __Construct, hier werden alle header eingaben für das RSS dokument erstellt.
     * @access public
     * @param  string $title Der Titel der Page(Z.b The best website of the world)
     * @param  string $link  Der link zum Script
     * @param  string $desc  Beschreibung des Feed's
     * @param  string $copyr Das copyright element
     * @param  string $charset Die Zeichenkodierung, optional
     * @param  string $lang  Die Sprache des Dokuments, optional
     **/
    public function __construct($title, $link, $desc, $copyr, $charset="ISO-8859-15", $lang='de-de')
    {
        $this->xmlcode .= '<?xml version="1.0" encoding="'.$charset.'"?>
    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
    <language>'. $lang .'</language>
    <docs>http://www.rssboard.org/rss-specification</docs>
    ';
        if($title != "") {
            $this->xmlcode .= "<title>".$title."</title>
            ";
        }
        else{
            echo "Error: Die variable \$title ist Leer!
            ";
            exit;
        }
        if($link != "") {
            $this->xmlcode .= "<link>". $link ."</link>
            ";
        }
        else{
            echo "Error: Die variable \$link ist leer!
            ";
            exit;
        }
        if($desc != "") {
            $this->xmlcode .= "<description>". $desc ."</description>
            ";
        }
        else{
            echo "Error: Die variable \$desc ist leer
            ";
        }
        if($copyr != "") {
            $this->xmlcode .= "<copyright>". $copyr ."</copyright>
            ";
        }
        else{
            echo "Error: Die variable \$desc ist leer!
            ";
            exit;
        }
    }//__construct ende
    /**
     * Neuen eintrag hinzufügen
     * @access public
     * @param  string $category Kategorie
     * @param  string $title    Der Titel des Eintrages
     * @param  string $link     Der Link zum Eintrag
     * @param  string $author   Autor des Eintrages
     * @param  Date   $pubDate  Veröffentlichungs Datum
     * @param  string $desc     Description(Beschreibung), Der eintrag selbst
     * @param  bool   $short    Eintrag kürzen?
     */
    public function add_item($category=NULL, $title,$link,$author,$pubDate,$desc, $short=FALSE)
    {
        $this->xmlcode .= "<item>
        ";
        if($category != NULL){
            $this->xmlcode .= "<category>". $category ."</category>
            ";
        }
        if($title != ""){
            $this->xmlcode .= "<title>". $title ."</title>
            ";
        }
        if($link != ""){
            $this->xmlcode .= "<link>". $link ."</link>
            ";
        }
        if($author != ""){
            $this->xmlcode .= "<author>". $author ."</author>
            ";
        }
        if($pubDate != ""){
            $this->xmlcode .= "<pubDate>" . $pubDate . "</pubDate>
            ";
        }
        if($desc != ""){//1
            if($short){//2
                $desc = str_split($desc, 250);
                echo "<description><![CDATA[" . $desc . "<a href='$link'>weiterlesen</a>]]></description>
                ";
            }//*2
            else{//2
            $this->xmlcode .= "<description><![CDATA[" . $desc . "]]></description>
            ";
            }//*2
         }//*1
        $this->xmlcode .= "</item>"; 
    }
    /**
     * Gibt die Variable $xmlcode aus, also das Dokument.
     * @access public
     */
    public function output()
    {
        $this->xmlcode .= "</rss>";
        echo $this->xmlcode;
    }
}//Klassen Ende
//Ein Beispiel :)
/*
$xml = new myrss("LG: LDG)PHP", "sd", "Beispiel text zur veranschaulichung :)","By LDG)PHP(Leon Giesenkämper)", "UTF-9");
$xml->add_item("darksider3.pf-control.de", "Beispiel Nummero Uno", "http://darksider3.pf-control.de", "Leon Giesenkämper", "2", "Textileino Eins");
$xml->add_item("darksider3.pf-control.de", "Beispiel Nummero Zwo", "http://darksider3.pf-control.de", "Leon Giesenkämper", "2", "Textilein Nummerina zwei^^");
$xml->output();
*/

以上是关于PHP MyRSS - 用于创建RSS源的类的主要内容,如果未能解决你的问题,请参考以下文章

如何从 php 中的 rss 提要获取图像

解析 XML(RSS 提要)的 PHP 错误

如何将图像添加为RSS源的一部分

XML应用之RSS

PHP 用于PHP的OOP RSS / XML类

PHP PHP:创建一个对象数组来存储原子rss数据