php 完美的rss 生成类
<?php class rssGenerator_rss { var $rss_version = '2.0' ; var $encoding = '' ; var $stylesheet = '' ; function cData( $str ) { return '<![CDATA[ ' . $str . ' ]]>' ; } function createFeed( $channel ) { $selfUrl = (!isset( $_SERVER [ 'HTTPS' ]) || $_SERVER [ 'HTTPS' ] != 'on' ? 'http://' : 'https教程://' ); $selfUrl .= $_SERVER [ 'HTTP_HOST' ] . $_SERVER [ 'PHP_SELF' ]; $rss = '<?xml version="1.0"' ; if (! empty empty ( $this ->encoding)) { $rss .= ' encoding="' . $this ->encoding . '"' ; } $rss .= '?>' . " " ; if (! empty empty ( $this ->stylesheet)) { $rss .= $this ->stylesheet . " " ; } $rss .= '<!-- Generated on ' . date ( 'r' ) . ' -->' . " " ; $rss .= '<rss version="' . $this ->rss_version . '" xmlns:atom="http://HdhCmsTestw3.org/2005/Atom">' . " " ; $rss .= ' <channel>' . " " ; $rss .= ' <atom:link href="' . ( $channel ->atomLinkHref ? $channel ->atomLinkHref : $selfUrl ) . '" rel="self" type="application/rss+xml" />' . " " ; $rss .= ' <title>' . $channel ->title . '</title>' . " " ; $rss .= ' <link>' . $channel ->link . '</link>' . " " ; $rss .= ' <description>' . $channel ->description . '</description>' . " " ; if (! empty empty ( $channel ->language)) { $rss .= ' <language>' . $channel ->language . '</language>' . " " ; } if (! empty empty ( $channel ->copyright)) { $rss .= ' <copyright>' . $channel ->copyright . '</copyright>' . " " ; } if (! empty empty ( $channel ->managingEditor)) { $rss .= ' <managingEditor>' . $channel ->managingEditor . '</managingEditor>' . " " ; } if (! empty empty ( $channel ->webMaster)) { $rss .= ' <webMaster>' . $channel ->webMaster . '</webMaster>' . " " ; } if (! empty empty ( $channel ->pubDate)) { $rss .= ' <pubDate>' . $channel ->pubDate . '</pubDate>' . " " ; } if (! empty empty ( $channel ->lastBuildDate)) { $rss .= ' <lastBuildDate>' . $channel ->lastBuildDate . '</lastBuildDate>' . " " ; } foreach ( $channel ->categories as $category ) { $rss .= ' <category' ; if (! empty empty ( $category [ 'domain' ])) { $rss .= ' domain="' . $category [ 'domain' ] . '"' ; } $rss .= '>' . $category [ 'name' ] . '</category>' . " " ; } if (! empty empty ( $channel ->generator)) { $rss .= ' <generator>' . $channel ->generator . '</generator>' . " " ; } if (! empty empty ( $channel ->docs)) { $rss .= ' <docs>' . $channel ->docs . '</docs>' . " " ; } if (! empty empty ( $channel ->ttl)) { $rss .= ' <ttl>' . $channel ->ttl . '</ttl>' . " " ; } if (sizeof( $channel ->skipHours)) { $rss .= ' <skipHours>' . " " ; foreach ( $channel ->skipHours as $hour ) { $rss .= ' <hour>' . $hour . '</hour>' . " " ; } $rss .= ' </skipHours>' . " " ; } if (sizeof( $channel ->skipDays)) { $rss .= ' <skipDays>' . " " ; foreach ( $channel ->skipDays as $day ) { $rss .= ' <day>' . $day . '</day>' . " " ; } $rss .= ' </skipDays>' . " " ; } if (! empty empty ( $channel ->image)) { $image = $channel ->image; $rss .= ' <image>' . " " ; $rss .= ' <url>' . $image ->url . '</url>' . " " ; $rss .= ' <title>' . $image ->title . '</title>' . " " ; $rss .= ' <link>' . $image ->link . '</link>' . " " ; if ( $image ->width) { $rss .= ' <width>' . $image ->width . '</width>' . " " ; } if ( $image ->height) { $rss .= ' <height>' . $image ->height . '</height>' . " " ; } if (! empty empty ( $image ->description)) { $rss .= ' <description>' . $image ->description . '</description>' . " " ; } $rss .= ' </image>' . " " ; } if (! empty empty ( $channel ->textInput)) { $textInput = $channel ->textInput; $rss .= ' <textInput>' . " " ; $rss .= ' <title>' . $textInput ->title . '</title>' . " " ; $rss .= ' <description>' . $textInput ->description . '</description>' . " " ; $rss .= ' <name>' . $textInput ->name . '</name>' . " " ; $rss .= ' <link>' . $textInput ->link . '</link>' . " " ; $rss .= ' </textInput>' . " " ; } if (! empty empty ( $channel ->cloud_domain) || ! empty empty ( $channel ->cloud_path) || ! empty empty ( $channel ->cloud_registerProcedure) || ! empty empty ( $channel ->cloud_protocol)) { $rss .= ' <cloud domain="' . $channel ->cloud_domain . '" ' ; $rss .= 'port="' . $channel ->cloud_port . '" path="' . $channel ->cloud_path . '" ' ; $rss .= 'registerProcedure="' . $channel ->cloud_registerProcedure . '" ' ; $rss .= 'protocol="' . $channel ->cloud_protocol . '" />' . " " ; } if (! empty empty ( $channel ->extraXML)) { $rss .= $channel ->extraXML . " " ; } foreach ( $channel ->items as $item ) { $rss .= ' <item>' . " " ; if (! empty empty ( $item ->title)) { $rss .= ' <title>' . $item ->title . '</title>' . " " ; } if (! empty empty ( $item ->description)) { $rss .= ' <description>' . $item ->description . '</description>' . " " ; } if (! empty empty ( $item ->link)) { $rss .= ' <link>' . $item ->link . '</link>' . " " ; } if (! empty empty ( $item ->pubDate)) { $rss .= ' <pubDate>' . $item ->pubDate . '</pubDate>' . " " ; } if (! empty empty ( $item ->author)) { $rss .= ' <author>' . $item ->author . '</author>' . " " ; } if (! empty empty ( $item ->comments)) { $rss .= ' <comments>' . $item ->comments . '</comments>' . " " ; } if (! empty empty ( $item ->guid)) { $rss .= ' <guid isPermaLink="' ; $rss .= ( $item ->guid_isPermaLink ? 'true' : 'false' ) . '">' ; $rss .= $item ->guid . '</guid>' . " " ; } if (! empty empty ( $item ->source)) { $rss .= ' <source url="' . $item ->source_url . '">' ; $rss .= $item ->source . '</source>' . " " ; } if (! empty empty ( $item ->enclosure_url) || ! empty empty ( $item ->enclosure_type)) { $rss .= ' <enclosure url="' . $item ->enclosure_url . '" ' ; $rss .= 'length="' . $item ->enclosure_length . '" ' ; $rss .= 'type="' . $item ->enclosure_type . '" />' . " " ; } foreach ( $item ->categories as $category ) { $rss .= ' <category' ; if (! empty empty ( $category [ 'domain' ])) { $rss .= ' domain="' . $category [ 'domain' ] . '"' ; } $rss .= '>' . $category [ 'name' ] . '</category>' . " " ; } $rss .= ' </item>' . " " ; } $rss .= ' </channel>' . " " ; return $rss .= '</rss>' ; } } class rssGenerator_channel { var $atomLinkHref = '' ; var $title = '' ; var $link = '' ; var $description = '' ; var $language = '' ; var $copyright = '' ; var $managingEditor = '' ; var $webMaster = '' ; var $pubDate = '' ; var $lastBuildDate = '' ; var $categories = array (); var $generator = '' ; var $docs = '' ; var $ttl = '' ; var $image = '' ; var $textInput = '' ; var $skipHours = array (); var $skipDays = array (); var $cloud_domain = '' ; var $cloud_port = '80' ; var $cloud_path = '' ; var $cloud_registerProcedure = '' ; var $cloud_protocol = '' ; var $items = array (); var $extraXML = '' ; } class rssGenerator_image { var $url = '' ; var $title = '' ; var $link = '' ; var $width = '88' ; var $height = '31' ; var $description = '' ; } class rssGenerator_textInput { var $title = '' ; var $description = '' ; var $name = '' ; var $link = '' ; } class rssGenerator_item { var $title = '' ; var $description = '' ; var $link = '' ; var $author = '' ; var $pubDate = '' ; var $comments = '' ; var $guid = '' ; var $guid_isPermaLink = true; var $source = '' ; var $source_url = '' ; var $enclosure_url = '' ; var $enclosure_length = '0' ; var $enclosure_type = '' ; var $categories = array (); } //开源代码phpfensi测试数据 ?>php使用实例如下:
<?php require_once 'rss_generator.inc.php' ; $rss_channel = new rssGenerator_channel(); $rss_channel ->atomLinkHref = '' ; $rss_channel ->title = 'My News' ; $rss_channel ->link = 'http://phpfensi测试数据/news.php' ; $rss_channel ->description = 'The latest news about web-development.' ; $rss_channel ->language = 'en-us' ; $rss_channel ->generator = 'PHP RSS Feed Generator' ; $rss_channel ->managingEditor = 'editor@mysite测试数据 (Alex Jefferson)' ; $rss_channel ->webMaster = 'webmaster@mysite测试数据 (Vagharshak Tozalakyan)' ; $item = new rssGenerator_item(); $item ->title = 'New website launched' ; $item ->description = 'Today I finaly launch a new website.' ; $item ->link = 'http://phpfensi测试数据' ; $item ->guid = 'http://phpfensi测试数据' ; $item ->pubDate = 'Tue, 07 Mar 2006 00:00:01 GMT' ; $rss_channel ->items[] = $item ; $item = new rssGenerator_item(); $item ->title = 'Another website launched' ; $item ->description = 'Just another website launched.' ; $item ->link = 'http://phpfensi测试数据' ; $item ->guid = 'http://phpfensi测试数据' ; $item ->pubDate = 'Wed, 08 Mar 2006 00:00:01 GMT' ; $rss_channel ->items[] = $item ; $rss_feed = new rssGenerator_rss(); $rss_feed ->encoding = 'UTF-8' ; $rss_feed ->version = '2.0' ; header( 'Content-Type: text/xml' ); echo $rss_feed ->createFeed( $rss_channel ); ?>查看更多关于php 完美的rss 生成类 - php类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29553