webmaster1 Posted April 5, 2009 Share Posted April 5, 2009 Hi All, I'm using a basic script for a few RSS feeds but I keep on getting the following error: Parse error: syntax error, unexpected T_SL in ... The code is below. Can someone please help? This is really bugging me. <?php // // ScarySoftware RSS parser // Copyright (c) 2006 Scary Software // ( Generates HTML from a RSS feeds ) // // Licensed Under the Gnu Public License // // Here are the feeds - you can add to them or change them $RSSFEEDS = array( 0 => "http://www.site-reference.com/xml.php?c=all", 1 => "http://rss.cnn.com/rss/cnn_topstories.rss", 2 => "http://rss.slashdot.org/Slashdot/slashdot", ); // // Makes a pretty HTML page bit from the title, // description and link // function FormatRow($title, $description, $link) { return <<<HTML <!-- RSS FEED ENTRY --> <p class="feed_title">$title</p> <p class="feed_description">$description</p> <a class="feed_link" href="$link" rel="nofollow" target="_blank">Read more...</a> <p> </p> <hr size=1> <!-- END OF RSS FEED ENTRY --> HTML; } // we'll buffer the output ob_start(); // Now we make sure that we have a feed selected to work with if (!isset($feedid)) $feedid = 0; $rss_url = $RSSFEEDS[$feedid]; // Server friendly page cache $ttl = 60*60;// 60 secs/min for 60 minutes = 1 hour(360 secs) $cachefilename = md5($rss_url); if (file_exists($cachefilename) && (time() - $ttl < filemtime($cachefilename))) { // We recently did the work, so we'll save bandwidth by not doing it again include($cachefilename); exit(); } // Now we read the feed $rss_feed = file_get_contents($rss_url); // Now we replace a few things that may cause problems later $rss_feed = str_replace("<![CDATA[", "", $rss_feed); $rss_feed = str_replace("]]>", "", $rss_feed); $rss_feed = str_replace("\n", "", $rss_feed); // If there is an image node remove it, we aren't going to use // it anyway and it often contains a <title> and <link> // that we don't want to match on later. $rss_feed = preg_replace('#<image>(.*?)</image>#', '', $rss_feed, 1 ); // Now we get the nodes that we're interested in preg_match_all('#<title>(.*?)</title>#', $rss_feed, $title, PREG_SET_ORDER); preg_match_all('#<link>(.*?)</link>#', $rss_feed, $link, PREG_SET_ORDER); preg_match_all('#<description>(.*?)</description>#', $rss_feed, $description, PREG_SET_ORDER); // // Now that the RSS/XML is parsed.. Lets Make HTML ! // // If there is not at least one title, then the feed was empty // it happens sometimes, so lets be prepared and do something // reasonable if(count($title) <= 1) { echo "No news at present, please check back later.<br><br>"; } else { // OK Here we go, this is the fun part // Well do up the top 3 entries from the feed for ($counter = 1; $counter <= 3; $counter++ ) { // We do a reality check to make sure there is something we can show if(!empty($title[$counter][1])) { // Then we'll make a good faith effort to make the title // valid HTML $title[$counter][1] = str_replace("&", "&", $title[$counter][1]); $title[$counter][1] = str_replace("'", "'", $title[$counter][1]); // The description often has encoded HTML entities in it, and // we probably don't want these, so we'll decode them $description[$counter][1] = html_entity_decode( $description[$counter][1]); // Now we make a pretty page bit from the data we retrieved from // the RSS feed. Remember the function FormatRow from the // beginning of the program ? Here we put it to use. $row = FormatRow($title[$counter][1],$description[$counter][1],$link[$counter][1]); // And now we'll output the new page bit! echo $row; } } } // Finally we'll save a copy of the pretty HTML we just created // so that we can skip most of the work next time $fp = fopen($cachefilename, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); // All Finished! ob_end_flush(); // Send the output to the browser ?> Link to comment https://forums.phpfreaks.com/topic/152690-solved-unexpected-t_sl-error/ Share on other sites More sharing options...
webmaster1 Posted April 5, 2009 Author Share Posted April 5, 2009 Other forums suggest thats its to do with a white space. Link to comment https://forums.phpfreaks.com/topic/152690-solved-unexpected-t_sl-error/#findComment-801835 Share on other sites More sharing options...
webmaster1 Posted April 5, 2009 Author Share Posted April 5, 2009 Alritey then, false alarm! Apparently there was a space after <<<html. For any newbs like me: Click right after the l of <<<html, press your right arrow key once and then press backspace. Link to comment https://forums.phpfreaks.com/topic/152690-solved-unexpected-t_sl-error/#findComment-801838 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.