VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php 完美的rss 生成类

  1. <?php 
  2. class rssGenerator_rss 
  3. { 
  4.     var $rss_version = '2.0'; 
  5.     var $encoding = ''; 
  6.     var $stylesheet = ''; 
  7.  
  8.     function cData($str) 
  9.     { 
  10.         return '<![CDATA[ ' . $str . ' ]]>'; 
  11.     } 
  12.  
  13.     function createFeed($channel) 
  14.     { 
  15.         $selfUrl = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on' ? 'http://' : 'https教程://'); 
  16.         $selfUrl .= $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
  17.         $rss = '<?xml version="1.0"'; 
  18.         if (!emptyempty($this->encoding)) { 
  19.             $rss .= ' encoding="' . $this->encoding . '"'; 
  20.         } 
  21.         $rss .= '?>' . " "; 
  22.         if (!emptyempty($this->stylesheet)) { 
  23.             $rss .= $this->stylesheet . " "; 
  24.         } 
  25.         $rss .= '<!-- Generated on ' . date('r') . ' -->' . " "; 
  26.         $rss .= '<rss version="' . $this->rss_version . '" xmlns:atom="http://www.w3.org/2005/Atom">' . " "; 
  27.         $rss .= '  <channel>' . " "; 
  28.      $rss .= '    <atom:link href="' . ($channel->atomLinkHref ? $channel->atomLinkHref : $selfUrl) . '" rel="self" type="application/rss+xml" />' . " "; 
  29.         $rss .= '    <title>' . $channel->title . '</title>' . " "; 
  30.         $rss .= '    <link>' . $channel->link . '</link>' . " "; 
  31.         $rss .= '    <description>' . $channel->description . '</description>' . " "; 
  32.         if (!emptyempty($channel->language)) { 
  33.             $rss .= '    <language>' . $channel->language . '</language>' . " "; 
  34.         } 
  35.         if (!emptyempty($channel->copyright)) { 
  36.             $rss .= '    <copyright>' . $channel->copyright . '</copyright>' . " "; 
  37.         } 
  38.         if (!emptyempty($channel->managingEditor)) { 
  39.             $rss .= '    <managingEditor>' . $channel->managingEditor . '</managingEditor>' . " "; 
  40.         } 
  41.         if (!emptyempty($channel->webMaster)) { 
  42.             $rss .= '    <webMaster>' . $channel->webMaster . '</webMaster>' . " "; 
  43.         } 
  44.         if (!emptyempty($channel->pubDate)) { 
  45.             $rss .= '    <pubDate>' . $channel->pubDate . '</pubDate>' . " "; 
  46.         } 
  47.         if (!emptyempty($channel->lastBuildDate)) { 
  48.             $rss .= '    <lastBuildDate>' . $channel->lastBuildDate . '</lastBuildDate>' . " "; 
  49.         } 
  50.         foreach ($channel->categories as $category) { 
  51.             $rss .= '    <category'; 
  52.             if (!emptyempty($category['domain'])) { 
  53.                 $rss .= ' domain="' . $category['domain'] . '"'; 
  54.             } 
  55.             $rss .= '>' . $category['name'] . '</category>' . " "; 
  56.         } 
  57.         if (!emptyempty($channel->generator)) { 
  58.             $rss .= '    <generator>' . $channel->generator . '</generator>' . " "; 
  59.         } 
  60.         if (!emptyempty($channel->docs)) { 
  61.             $rss .= '    <docs>' . $channel->docs . '</docs>' . " "; 
  62.         } 
  63.         if (!emptyempty($channel->ttl)) { 
  64.             $rss .= '    <ttl>' . $channel->ttl . '</ttl>' . " "; 
  65.         } 
  66.         if (sizeof($channel->skipHours)) { 
  67.             $rss .= '    <skipHours>' . " "; 
  68.             foreach ($channel->skipHours as $hour) { 
  69.                 $rss .= '      <hour>' . $hour . '</hour>' . " "; 
  70.             } 
  71.             $rss .= '    </skipHours>' . " "; 
  72.         } 
  73.         if (sizeof($channel->skipDays)) { 
  74.             $rss .= '    <skipDays>' . " "; 
  75.             foreach ($channel->skipDays as $day) { 
  76.                 $rss .= '      <day>' . $day . '</day>' . " "; 
  77.             } 
  78.             $rss .= '    </skipDays>' . " "; 
  79.         } 
  80.         if (!emptyempty($channel->image)) { 
  81.             $image = $channel->image; 
  82.             $rss .= '    <image>' . " "; 
  83.             $rss .= '      <url>' . $image->url . '</url>' . " "; 
  84.             $rss .= '      <title>' . $image->title . '</title>' . " "; 
  85.             $rss .= '      <link>' . $image->link . '</link>' . " "; 
  86.             if ($image->width) { 
  87.                 $rss .= '      <width>' . $image->width . '</width>' . " "; 
  88.             } 
  89.             if ($image->height) { 
  90.                 $rss .= '      <height>' . $image->height . '</height>' . " "; 
  91.             } 
  92.             if (!emptyempty($image->description)) { 
  93.                 $rss .= '      <description>' . $image->description . '</description>' . " "; 
  94.             } 
  95.             $rss .= '    </image>' . " "; 
  96.         } 
  97.         if (!emptyempty($channel->textInput)) { 
  98.             $textInput = $channel->textInput; 
  99.             $rss .= '    <textInput>' . " "; 
  100.             $rss .= '      <title>' . $textInput->title . '</title>' . " "; 
  101.             $rss .= '      <description>' . $textInput->description . '</description>' . " "; 
  102.             $rss .= '      <name>' . $textInput->name . '</name>' . " "; 
  103.             $rss .= '      <link>' . $textInput->link . '</link>' . " "; 
  104.             $rss .= '    </textInput>' . " "; 
  105.         } 
  106.         if (!emptyempty($channel->cloud_domain) || !emptyempty($channel->cloud_path) || !emptyempty($channel->cloud_registerProcedure) || !emptyempty($channel->cloud_protocol)) { 
  107.             $rss .= '    <cloud domain="' . $channel->cloud_domain . '" '; 
  108.             $rss .= 'port="' . $channel->cloud_port . '" path="' . $channel->cloud_path . '" '; 
  109.             $rss .= 'registerProcedure="' . $channel->cloud_registerProcedure . '" '; 
  110.             $rss .= 'protocol="' . $channel->cloud_protocol . '" />' . " "; 
  111.         } 
  112.         if (!emptyempty($channel->extraXML)) { 
  113.             $rss .= $channel->extraXML . " "; 
  114.         } 
  115.         foreach ($channel->items as $item) { 
  116.             $rss .= '    <item>' . " "; 
  117.             if (!emptyempty($item->title)) { 
  118.                 $rss .= '      <title>' . $item->title . '</title>' . " "; 
  119.             } 
  120.             if (!emptyempty($item->description)) { 
  121.                 $rss .= '      <description>' . $item->description . '</description>' . " "; 
  122.             } 
  123.             if (!emptyempty($item->link)) { 
  124.                 $rss .= '      <link>' . $item->link . '</link>' . " "; 
  125.             } 
  126.             if (!emptyempty($item->pubDate)) { 
  127.                 $rss .= '      <pubDate>' . $item->pubDate . '</pubDate>' . " "; 
  128.             } 
  129.             if (!emptyempty($item->author)) { 
  130.                 $rss .= '      <author>' . $item->author . '</author>' . " "; 
  131.             } 
  132.             if (!emptyempty($item->comments)) { 
  133.                 $rss .= '      <comments>' . $item->comments . '</comments>' . " "; 
  134.             } 
  135.             if (!emptyempty($item->guid)) { 
  136.                 $rss .= '      <guid isPermaLink="'; 
  137.                 $rss .= ($item->guid_isPermaLink ? 'true' : 'false') . '">'; 
  138.                 $rss .= $item->guid . '</guid>' . " "; 
  139.             } 
  140.             if (!emptyempty($item->source)) { 
  141.                 $rss .= '      <source url="' . $item->source_url . '">'; 
  142.                 $rss .= $item->source . '</source>' . " "; 
  143.             } 
  144.             if (!emptyempty($item->enclosure_url) || !emptyempty($item->enclosure_type)) { 
  145.                 $rss .= '      <enclosure url="' . $item->enclosure_url . '" '; 
  146.                 $rss .= 'length="' . $item->enclosure_length . '" '; 
  147.                 $rss .= 'type="' . $item->enclosure_type . '" />' . " "; 
  148.             } 
  149.             foreach ($item->categories as $category) { 
  150.                 $rss .= '      <category'; 
  151.                 if (!emptyempty($category['domain'])) { 
  152.                     $rss .= ' domain="' . $category['domain'] . '"'; 
  153.                 } 
  154.                 $rss .= '>' . $category['name'] . '</category>' . " "; 
  155.             } 
  156.             $rss .= '    </item>' . " "; 
  157.         } 
  158.         $rss .= '  </channel>' . " "; 
  159.         return $rss .= '</rss>'; 
  160.     } 
  161.  
  162. } 
  163.  
  164. class rssGenerator_channel 
  165. { 
  166.     var $atomLinkHref = ''; 
  167.     var $title = ''; 
  168.     var $link = ''; 
  169.     var $description = ''; 
  170.     var $language = ''; 
  171.     var $copyright = ''; 
  172.     var $managingEditor = ''; 
  173.     var $webMaster = ''; 
  174.     var $pubDate = ''; 
  175.     var $lastBuildDate = ''; 
  176.     var $categories = array(); 
  177.     var $generator = ''; 
  178.     var $docs = ''; 
  179.     var $ttl = ''; 
  180.     var $image = ''; 
  181.     var $textInput = ''; 
  182.     var $skipHours = array(); 
  183.     var $skipDays = array(); 
  184.     var $cloud_domain = ''; 
  185.     var $cloud_port = '80'; 
  186.     var $cloud_path = ''; 
  187.     var $cloud_registerProcedure = ''; 
  188.     var $cloud_protocol = ''; 
  189.     var $items = array(); 
  190.     var $extraXML = ''; 
  191.  
  192. } 
  193.  
  194. class rssGenerator_image 
  195. { 
  196.     var $url = ''; 
  197.     var $title = ''; 
  198.     var $link = ''; 
  199.     var $width = '88'; 
  200.     var $height = '31'; 
  201.     var $description = ''; 
  202.  
  203. } 
  204.  
  205. class rssGenerator_textInput 
  206. { 
  207.     var $title = ''; 
  208.     var $description = ''; 
  209.     var $name = ''; 
  210.     var $link = ''; 
  211.  
  212. } 
  213.  
  214. class rssGenerator_item 
  215. { 
  216.     var $title = ''; 
  217.     var $description = ''; 
  218.     var $link = ''; 
  219.     var $author = ''; 
  220.     var $pubDate = ''; 
  221.     var $comments = ''; 
  222.     var $guid = ''; 
  223.     var $guid_isPermaLink = true; 
  224.     var $source = ''; 
  225.     var $source_url = ''; 
  226.     var $enclosure_url = ''; 
  227.     var $enclosure_length = '0'; 
  228.     var $enclosure_type = ''; 
  229.     var $categories = array(); 
  230.  
  231. } 
  232. //开源代码phpfensi.com 
  233. ?> 

php使用实例如下:

  1. <?php 
  2. require_once 'rss_generator.inc.php'; 
  3. $rss_channel = new rssGenerator_channel(); 
  4. $rss_channel->atomLinkHref = ''; 
  5. $rss_channel->title = 'My News'; 
  6. $rss_channel->link = 'http://phpfensi.com/news.php'; 
  7. $rss_channel->description = 'The latest news about web-development.'; 
  8. $rss_channel->language = 'en-us'; 
  9. $rss_channel->generator = 'PHP RSS Feed Generator'; 
  10. $rss_channel->managingEditor = 'editor@mysite.com (Alex Jefferson)'; 
  11. $rss_channel->webMaster = 'webmaster@mysite.com (Vagharshak Tozalakyan)'; 
  12.  
  13. $item = new rssGenerator_item(); 
  14. $item->title = 'New website launched'; 
  15. $item->description = 'Today I finaly launch a new website.'; 
  16. $item->link = 'http://phpfensi.com'; 
  17. $item->guid = 'http://phpfensi.com'; 
  18. $item->pubDate = 'Tue, 07 Mar 2006 00:00:01 GMT'; 
  19. $rss_channel->items[] = $item; 
  20.  
  21. $item = new rssGenerator_item(); 
  22. $item->title = 'Another website launched'; 
  23. $item->description = 'Just another website launched.'; 
  24. $item->link = 'http://phpfensi.com'; 
  25. $item->guid = 'http://phpfensi.com'; 
  26. $item->pubDate = 'Wed, 08 Mar 2006 00:00:01 GMT'; 
  27. $rss_channel->items[] = $item; 
  28.  
  29. $rss_feed = new rssGenerator_rss(); 
  30. $rss_feed->encoding = 'UTF-8'; 
  31. $rss_feed->version = '2.0'; 
  32. header('Content-Type: text/xml'); 
  33. echo $rss_feed->createFeed($rss_channel); 
  34. ?> 
  35.  

出处:http://www.phpfensi.com/php/20140820/4564.html


相关教程