Jump to content

Search the Community

Showing results for tags 'rss rssreader.php pubdate'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Welcome to PHP Freaks
    • Announcements
    • Introductions
  • PHP Coding
    • PHP Coding Help
    • Regex Help
    • Third Party Scripts
    • FAQ/Code Snippet Repository
  • SQL / Database
    • MySQL Help
    • PostgreSQL
    • Microsoft SQL - MSSQL
    • Other RDBMS and SQL dialects
  • Client Side
    • HTML Help
    • CSS Help
    • Javascript Help
    • Other
  • Applications and Frameworks
    • Applications
    • Frameworks
    • Other Libraries
  • Web Server Administration
    • PHP Installation and Configuration
    • Linux
    • Apache HTTP Server
    • Microsoft IIS
    • Other Web Server Software
  • Other
    • Application Design
    • Other Programming Languages
    • Editor Help (PhpStorm, VS Code, etc)
    • Website Critique
    • Beta Test Your Stuff!
  • Freelance, Contracts, Employment, etc.
    • Services Offered
    • Job Offerings
  • General Discussion
    • PHPFreaks.com Website Feedback
    • Miscellaneous

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests


Age


Donation Link

Found 1 result

  1. I am trying to pull only today's item from a couple different RSS feeds. One site posts a few months in advance. I would like to display the post for today only (actually, I'd like to get the mp3 out of the link in the post for today and play it) Have been messing with rssreader.php with zero luck (this is by far the deepest I have ever gotten into php code) Snippet I have been messing with class newsStory{ var $title=""; var $link=""; var $description=""; var $pubdate=""; function show(){ $pubdate_ts = strtotime($pubdate); $today_ts = strtotime($today); { if ($pubdate_ts <= $today_ts) { echo "<dt><a href=\"$this->link\">$this->title</a><br>$this->pubdate</dt>\n"; } } } } Entire file <?php /* File: rssreader.php */ //classes follow // Generic container for the complete RSS feed class rssFeed{ var $title=""; var $copyright=""; var $description=""; var $image; var $stories=array(); var $url=""; var $xml=""; var $link=""; var $error=""; var $maxstories=0; // public methods function parse(){ $parser=xml_parser_create(); xml_set_element_handler($parser, "startElement", "endElement"); xml_set_character_data_handler($parser, "characterData"); xml_parse($parser, $this->xml, true) or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); xml_parser_free($parser); } function showLink(){ if($this->link) print "<a href=\"$this->link\">$this->link</a>\n"; } function showStories(){ echo "<dl>\n"; $n=0; foreach($this->stories as $story){ $n++; if ($this->maxstories && $n>$this->maxstories) break; $story->show(); } echo "</dl>\n"; } // Methods used internally // Constructor: Expects one string parameter that is the URI of the RSS feed function rssFeed($uri=''){ $this->image=new rssImage(); if($uri){ $this->url=$uri; $this->getFeed(); } else { $this->error="No URL for RSS feed"; } } // Retrieves the XML from the RSS supplier function getFeed(){ // if we have a URL if ($this->url){ if (extension_loaded('curl')) { $this->xml=$this->getRemoteFile($this->url); } } } function getRemoteFile($url){ $s=new gwSocket(); if($s->getUrl($url)){ if(is_array($s->headers)){ $h=array_change_key_case($s->headers, CASE_LOWER); if($s->error) // failed to connect with host $buffer=$this->errorReturn($s->error); elseif(preg_match("/404/",$h['status'])) // page not found $buffer=$this->errorReturn("Page Not Found"); elseif(preg_match("/xml/i",$h['content-type'])) // got XML back $buffer=$s->page; else // got a page, but wrong content type $buffer=$this->errorReturn("The server did not return XML. The content type returned was ".$h['content-type']); } else { $buffer=$this->errorReturn("An unknown error occurred."); } }else{ $buffer=$this->errorReturn("An unknown error occurred."); } return $buffer; } function errorReturn($error){ $retVal="<?xml version=\"1.0\" ?>\n". "<rss version=\"2.0\">\n". "\t<channel>\n". "\t\t<title>Failed to Get RSS Data</title>\n". "\t\t<description>An error was ecnountered attempting to get the RSS data: $error</description>\n". "\t\t<pubdate>".date("D, d F Y")."</pubdate>\n". "\t\t<lastbuilddate>".date("D, d F Y H:i:s T")."</lastbuilddate>\n". "\t</channel>\n". "</rss>\n"; return $retVal; } function addStory($o){ if(is_object($o)) $this->stories[]=$o; else $this->error="Type mismatach: expected object"; } } class rssImage{ var $title=""; var $url=""; var $link=""; var $width=0; var $height=0; function show($align=""){ if($this->url){ if($this->link) print "<a href=\"$this->link\">"; print "<img src=\"$this->url\" style=\"border:none;\""; if($this->title) print " alt=\"$this->title\""; if($this->width) print " width=\"$this->width\" height=\"$this->height\""; if($align) print " align=\"$align\""; print ">"; if($this->link) print "</a>"; } } } class newsStory{ var $title=""; var $link=""; var $description=""; var $pubdate=""; function show(){ $pubdate_ts = strtotime($pubdate); $today_ts = strtotime($today); { if ($pubdate_ts <= $today_ts) { echo "<dt><a href=\"$this->link\">$this->title</a><br>$this->pubdate</dt>\n"; } } } } class gwSocket{ var $Name="gwSocket"; var $Version="0.1"; var $userAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"; var $headers; var $page=""; var $result=""; var $redirects=0; var $maxRedirects=3; var $error=""; function getUrl( $url ) { $retVal=""; $url_parsed = parse_url($url); $scheme = $url_parsed["scheme"]; $host = $url_parsed["host"]; $port = $url_parsed["port"]?$url_parsed["port"]:"80"; $user = $url_parsed["user"]; $pass = $url_parsed["pass"]; $path = $url_parsed["path"]?$url_parsed["path"]:"/"; $query = $url_parsed["query"]; $anchor = $url_parsed["fragment"]; if (!empty($host)){ // attempt to open the socket if($fp = fsockopen($host, $port, $errno, $errstr, 2)){ $path .= $query?"?$query":""; $path .= $anchor?"$anchor":""; // this is the request we send to the host $out = "GET $path ". "HTTP/1.0\r\n". "Host: $host\r\n". "Connection: Close\r\n". "User-Agent: $this->userAgent\r\n"; if($user) $out .= "Authorization: Basic ". base64_encode("$user:$pass")."\r\n"; $out .= "\r\n"; fputs($fp, $out); while (!feof($fp)) { $retVal.=fgets($fp, 128); } fclose($fp); } else { $this->error="Failed to make connection to host.";//$errstr; } $this->result=$retVal; $this->headers=$this->parseHeaders(trim(substr($retVal,0,strpos($retVal,"\r\n\r\n")))); $this->page=trim(stristr($retVal,"\r\n\r\n"))."\n"; if(isset($this->headers['Location'])){ $this->redirects++; if($this->redirects<$this->maxRedirects){ $location=$this->headers['Location']; $this->headers=array(); $this->result=""; $this->page=""; $this->getUrl($location); } } } return (!$retVal=""); } function parseHeaders($s){ $h=preg_split("/[\r\n]/",$s); foreach($h as $i){ $i=trim($i); if(strstr($i,":")){ list($k,$v)=explode(":",$i); $hdr[$k]=substr(stristr($i,":"),2); }else{ if(strlen($i)>3) $hdr[]=$i; } } if(isset($hdr[0])){ $hdr['Status']=$hdr[0]; unset($hdr[0]); } return $hdr; } } /* end of classes - global functions follow */ function startElement($parser, $name, $attrs) { global $insideitem, $tag, $isimage; $tag = $name; if($name=="IMAGE") $isimage=true; if ($name == "ITEM") { $insideitem = true; } } function endElement($parser, $name) { global $insideitem, $title, $description, $link, $pubdate, $stories, $rss, $globaldata, $isimage; $globaldata=trim($globaldata); // if we're finishing a news item if ($name == "ITEM") { // create a new news story object $story=new newsStory(); // assign the title, link, description and publication date $story->title=trim($title); $story->link=trim($link); $story->description=trim($description); $story->pubdate=trim($pubdate); // add it to our array of stories $rss->addStory($story); // reset our global variables $title = ""; $description = ""; $link = ""; $pubdate = ""; $insideitem = false; } else { switch($name){ case "TITLE": if(!$isimage) if(!$insideitem) $rss->title=$globaldata; break; case "LINK": if(!$insideitem) $rss->link=$globaldata; break; case "COPYRIGHT": if(!$insideitem) $rss->copyright=$globaldata; break; case "DESCRIPTION": if(!$insideitem) $rss->description=$globaldata; break; } } if($isimage){ switch($name){ case "TITLE": $rss->image->title=$globaldata;break; case "URL": $rss->image->url=$globaldata;break; case "LINK": $rss->image->link=$globaldata;break; case "WIDTH": $rss->image->width=$globaldata;break; case "HEIGHT": $rss->image->height=$globaldata;break; } } if($name=="IMAGE") $isimage=false; $globaldata=""; } function characterData($parser, $data) { global $insideitem, $tag, $title, $description, $link, $pubdate, $globaldata; if ($insideitem) { switch ($tag) { case "TITLE": $title .= $data; break; case "DESCRIPTION": $description .= $data; break; case "LINK": $link .= $data; break; case "PUBDATE": case "DC:DATE": $pubdate .= $data; break; } } else { $globaldata.=$data; } } ?>
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.