cure-real
Page 1 of 2 12 LastLast
Results 1 to 15 of 21

Thread: Using RSS Feeds

  1. #1
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28

    Using RSS Feeds

    I'd like to add a business news spot on my page using RSS feeds. To be more specific, I'd like to use Yahoo's Business Feed ( http://rss.news.yahoo.com/rss/business ). My website is validated in HTML 4.01 Trans., so that may be a problem. Would anyone have any idea how to help me out or show me some tutorials on how to get these things working, and how to customize them to my sites style.
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  2. #2
    Join Date
    Jul 2002
    Location
    JNB, ZA
    Posts
    1,776
    That's pretty easy. All you need to do is to go to a place like RSSDigest and paste the link you mentioned. After that, you fill out the form with your details and paste the HTML into your pages.

    I made an example for you here using PHP.

    The whole thing took about 60 seconds
    Democracy is not of Christ. Neither is communism or Socialism or Capitalism!
    Only CHRIST is of Christ!
    The rest is all Hype and "carbon tax"..... Who do you think gets your CO2 $$'s...
    The CHURCH?


  3. #3
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    Neither one of those links work ... I get an error with both of them.
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  4. #4
    Join Date
    Jul 2002
    Location
    JNB, ZA
    Posts
    1,776
    ... then something is broke your side. They do work. Both.
    Democracy is not of Christ. Neither is communism or Socialism or Capitalism!
    Only CHRIST is of Christ!
    The rest is all Hype and "carbon tax"..... Who do you think gets your CO2 $$'s...
    The CHURCH?


  5. #5
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    Ok, I kid you not, neither of them worked last night, but right now they work just fine... eerie.. Thanks BDH, I'll check them out later tonight after work!

    BTW: Could you post the php code you used?
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  6. #6
    Join Date
    Jul 2002
    Location
    JNB, ZA
    Posts
    1,776
    The code is URL specific. You get it from the RSS site posted above. (They also give you the option to use java-script)
    Democracy is not of Christ. Neither is communism or Socialism or Capitalism!
    Only CHRIST is of Christ!
    The rest is all Hype and "carbon tax"..... Who do you think gets your CO2 $$'s...
    The CHURCH?


  7. #7
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    Thanks BDH, now I just have to wait till the site is back up after upgrading .
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  8. #8
    Join Date
    Apr 2004
    Location
    Virginia Beach, Va
    Posts
    7
    BDH... You're the man!! We love you here!


    "Computers in the future may weigh no more than 1.5 tons." -- Popular Mechanics, 1949.

    ---------------

    Quote Originally Posted by ProjectPeter
    I think what happens is that folks get so used to what we call "trolls" coming around that we assume troll sometimes to quickly.

  9. #9
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    Hey BDH, do you know of any sites other than RSS Digest that could do the job? RSS Digest isn't projected to be back up until January... and I need this site finished in the middle of january.
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  10. #10
    Join Date
    Jul 2002
    Location
    JNB, ZA
    Posts
    1,776
    Yes, from This site ... I'm busy knocking together something very similar to RSS digest and hope to have it online in the next few weeks.

    You can also take a look at the big G for more sites doing this.

    Also, if you use one of the CMS apps like PHPNuke etc, most of these have built in RSS feed parsers you can enable, then you don't need a parser from a third party site.
    Democracy is not of Christ. Neither is communism or Socialism or Capitalism!
    Only CHRIST is of Christ!
    The rest is all Hype and "carbon tax"..... Who do you think gets your CO2 $$'s...
    The CHURCH?


  11. #11
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    I ran it through phpNuke and set up the block and it works fine in the nuke area. But how do I get the headlines from the Nuke area to my other site? Or how can I get the headlines from one site to the other basically ..
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  12. #12
    Join Date
    Jul 2002
    Location
    JNB, ZA
    Posts
    1,776
    Actually, what I meant previously was that if you did your whole site in PHP Nuke, you could do this. To have Nuke installed just for the RSS seems a bit of an overkill.

    Not exactly sure how one would do this ... In PHPNuke it probably uses an include directive to pull in the RSS page so you would need to do the same thing in the page you wanted it on.

    The page would probably have to be either an IFRAME or php page in order to include the Nuke code.
    Democracy is not of Christ. Neither is communism or Socialism or Capitalism!
    Only CHRIST is of Christ!
    The rest is all Hype and "carbon tax"..... Who do you think gets your CO2 $$'s...
    The CHURCH?


  13. #13
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    Ok well after some more research, I finally figuring out what an RSS feed is, and once I did that, I figured that I could simply search hotscripts and find a PHP script that would take and parse the RSS feed into HTML, similar to what those rss sites do for you, except it wouldn't have any of their advertising on it. So I found this script on hotscripts last night and it looks like it should work, but I'm not sure what's wrong, I included it onto my page via php include.

    PHP Code:
    <?php
    /*
     ======================================================================
     lastRSS 0.9.1
     
     Simple yet powerfull PHP class to parse RSS files.
     
     by Vojtech Semecky, webmaster @ webdot . cz
     
     Latest version, features, manual and examples:
         http://lastrss.webdot.cz/

     ----------------------------------------------------------------------
     LICENSE

     This program is free software; you can redistribute it and/or
     modify it under the terms of the GNU General Public License (GPL)
     as published by the Free Software Foundation; either version 2
     of the License, or (at your option) any later version.

     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     GNU General Public License for more details.

     To read the license please visit http://www.gnu.org/copyleft/gpl.html
     ======================================================================
    */

    /**
    * lastRSS
    * Simple yet powerfull PHP class to parse RSS files.
    */
    class lastRSS {
        
    // -------------------------------------------------------------------
        // Public properties
        // -------------------------------------------------------------------
        
    var $default_cp 'UTF-8';
        var 
    $CDATA 'nochange';
        var 
    $cp '';
        var 
    $items_limit 0;
        var 
    $stripHTML False;
        var 
    $date_format '';

        
    // -------------------------------------------------------------------
        // Private variables
        // -------------------------------------------------------------------
        
    var $channeltags = array ('title''link''description''language''copyright''managingEditor''webMaster''lastBuildDate''rating''docs');
        var 
    $itemtags = array('title''link''description''author''category''comments''enclosure''guid''pubDate''source');
        var 
    $imagetags = array('title''url''link''width''height');
        var 
    $textinputtags = array('title''description''name''link');

        
    // -------------------------------------------------------------------
        // Parse RSS file and returns associative array.
        // -------------------------------------------------------------------
        
    function Get ($rss_url) {
            
    // If CACHE ENABLED
            
    if ($this->cache_dir != '') {
                
    $cache_file $this->cache_dir '/rsscache_' md5($rss_url);
                
    $timedif = @(time() - filemtime($cache_file));
                if (
    $timedif $this->cache_time) {
                    
    // cached file is fresh enough, return cached array
                    
    $result unserialize(join(''file($cache_file)));
                    
    // set 'cached' to 1 only if cached file is correct
                    
    if ($result$result['cached'] = 1;
                } else {
                    
    // cached file is too old, create new
                    
    $result $this->Parse($rss_url);
                    
    $serialized serialize($result);
                    if (
    $f = @fopen($cache_file'w')) {
                        
    fwrite ($f$serializedstrlen($serialized));
                        
    fclose($f);
                    }
                    if (
    $result$result['cached'] = 0;
                }
            }
            
    // If CACHE DISABLED >> load and parse the file directly
            
    else {
                
    $result $this->Parse($rss_url);
                if (
    $result$result['cached'] = 0;
            }
            
    // return result
            
    return $result;
        }
        
        
    // -------------------------------------------------------------------
        // Modification of preg_match(); return trimed field with index 1
        // from 'classic' preg_match() array output
        // -------------------------------------------------------------------
        
    function my_preg_match ($pattern$subject) {
            
    // start regullar expression
            
    preg_match($pattern$subject$out);

            
    // if there is some result... process it and return it
            
    if(isset($out[1])) {
                
    // Process CDATA (if present)
                
    if ($this->CDATA == 'content') { // Get CDATA content (without CDATA tag)
                    
    $out[1] = strtr($out[1], array('<![CDATA['=>''']]>'=>''));
                } elseif (
    $this->CDATA == 'strip') { // Strip CDATA
                    
    $out[1] = strtr($out[1], array('<![CDATA['=>''']]>'=>''));
                }

                
    // If code page is set convert character encoding to required
                
    if ($this->cp != '')
                    
    //$out[1] = $this->MyConvertEncoding($this->rsscp, $this->cp, $out[1]);
                    
    $out[1] = iconv($this->rsscp$this->cp.'//TRANSLIT'$out[1]);
                
    // Return result
                
    return trim($out[1]);
            } else {
            
    // if there is NO result, return empty string
                
    return '';
            }
        }

        
    // -------------------------------------------------------------------
        // Replace HTML entities &something; by real characters
        // -------------------------------------------------------------------
        
    function unhtmlentities ($string) {
            
    // Get HTML entities table
            
    $trans_tbl get_html_translation_table (HTML_ENTITIESENT_QUOTES);
            
    // Flip keys<==>values
            
    $trans_tbl array_flip ($trans_tbl);
            
    // Add support for &apos; entity (missing in HTML_ENTITIES)
            
    $trans_tbl += array('&apos;' => "'");
            
    // Replace entities by values
            
    return strtr ($string$trans_tbl);
        }

        
    // -------------------------------------------------------------------
        // Parse() is private method used by Get() to load and parse RSS file.
        // Don't use Parse() in your scripts - use Get($rss_file) instead.
        // -------------------------------------------------------------------
        
    function Parse ($rss_url) {
            
    // Open and load RSS file
            
    if ($f = @fopen($rss_url'r')) {
                
    $rss_content '';
                while (!
    feof($f)) {
                    
    $rss_content .= fgets($f4096);
                }
                
    fclose($f);

                
    // Parse document encoding
                
    $result['encoding'] = $this->my_preg_match("'encoding=[\'\"](.*?)[\'\"]'si"$rss_content);
                
    // if document codepage is specified, use it
                
    if ($result['encoding'] != '')
                    { 
    $this->rsscp $result['encoding']; } // This is used in my_preg_match()
                // otherwise use the default codepage
                
    else
                    { 
    $this->rsscp $this->default_cp; } // This is used in my_preg_match()

                // Parse CHANNEL info
                
    preg_match("'<channel.*?>(.*?)</channel>'si"$rss_content$out_channel);
                foreach(
    $this->channeltags as $channeltag)
                {
                    
    $temp $this->my_preg_match("'<$channeltag.*?>(.*?)</$channeltag>'si"$out_channel[1]);
                    if (
    $temp != ''$result[$channeltag] = $temp// Set only if not empty
                
    }
                
    // If date_format is specified and lastBuildDate is valid
                
    if ($this->date_format != '' && ($timestamp strtotime($result['lastBuildDate'])) !==-1) {
                            
    // convert lastBuildDate to specified date format
                            
    $result['lastBuildDate'] = date($this->date_format$timestamp);
                }

                
    // Parse TEXTINPUT info
                
    preg_match("'<textinput(|[^>]*[^/])>(.*?)</textinput>'si"$rss_content$out_textinfo);
                    
    // This a little strange regexp means:
                    // Look for tag <textinput> with or without any attributes, but skip truncated version <textinput /> (it's not beggining tag)
                
    if (isset($out_textinfo[2])) {
                    foreach(
    $this->textinputtags as $textinputtag) {
                        
    $temp $this->my_preg_match("'<$textinputtag.*?>(.*?)</$textinputtag>'si"$out_textinfo[2]);
                        if (
    $temp != ''$result['textinput_'.$textinputtag] = $temp// Set only if not empty
                    
    }
                }
                
    // Parse IMAGE info
                
    preg_match("'<image.*?>(.*?)</image>'si"$rss_content$out_imageinfo);
                if (isset(
    $out_imageinfo[1])) {
                    foreach(
    $this->imagetags as $imagetag) {
                        
    $temp $this->my_preg_match("'<$imagetag.*?>(.*?)</$imagetag>'si"$out_imageinfo[1]);
                        if (
    $temp != ''$result['image_'.$imagetag] = $temp// Set only if not empty
                    
    }
                }
                
    // Parse ITEMS
                
    preg_match_all("'<item(| .*?)>(.*?)</item>'si"$rss_content$items);
                
    $rss_items $items[2];
                
    $i 0;
                
    $result['items'] = array(); // create array even if there are no items
                
    foreach($rss_items as $rss_item) {
                    
    // If number of items is lower then limit: Parse one item
                    
    if ($i $this->items_limit || $this->items_limit == 0) {
                        foreach(
    $this->itemtags as $itemtag) {
                            
    $temp $this->my_preg_match("'<$itemtag.*?>(.*?)</$itemtag>'si"$rss_item);
                            if (
    $temp != ''$result['items'][$i][$itemtag] = $temp// Set only if not empty
                        
    }
                        
    // Strip HTML tags and other bull**** from DESCRIPTION
                        
    if ($this->stripHTML && $result['items'][$i]['description'])
                            
    $result['items'][$i]['description'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['description'])));
                        
    // Strip HTML tags and other bull**** from TITLE
                        
    if ($this->stripHTML && $result['items'][$i]['title'])
                            
    $result['items'][$i]['title'] = strip_tags($this->unhtmlentities(strip_tags($result['items'][$i]['title'])));
                        
    // If date_format is specified and pubDate is valid
                        
    if ($this->date_format != '' && ($timestamp strtotime($result['items'][$i]['pubDate'])) !==-1) {
                            
    // convert pubDate to specified date format
                            
    $result['items'][$i]['pubDate'] = date($this->date_format$timestamp);
                        }
                        
    // Item counter
                        
    $i++;
                    }
                }

                
    $result['items_count'] = $i;
                return 
    $result;
            }
            else 
    // Error in opening return False
            
    {
                return 
    False;
            }
        }
    }

    ?>
    Last edited by FPG; Dec 20th 2004 at 11:13 PM.
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  14. #14
    Join Date
    May 2004
    Location
    A quiet little town by the name of ..
    Posts
    28
    Well after a few days working on it, I found a RSS Parser that worked for me, only to discover that it exports it to XHTML not to HTML. So I decided to give up on RSS feeds and went with cutenews to instead add news to the page manually. Thanks for all your help BDH. One thing has come out of this however, I'd like to write my own feed, though I think I'll wait until my PHP and XML classes are over . Again thanks for your help.
    Whilst sun and moon endure, America shall remain a city of refuge for the whole earth, until she herself shall play the tyrant, forget her destiny, disgrace her freedom, and provoke her God!
    ~George Duffield (Patriot Preacher)

  15. #15
    Join Date
    Jul 2002
    Location
    JNB, ZA
    Posts
    1,776
    I said it would be a few weeks before I had something ... well actually, it was a bit longer then that. Scroll down to the bottom of this page and click the image ... it can read the message board's RSS feed ... it's getting there slowly
    Democracy is not of Christ. Neither is communism or Socialism or Capitalism!
    Only CHRIST is of Christ!
    The rest is all Hype and "carbon tax"..... Who do you think gets your CO2 $$'s...
    The CHURCH?


Thread Information

Users Browsing this Thread

There are currently 2 users browsing this thread. (0 members and 2 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •