Re: How can i only fetch a (rss/atom) feed when it's changed?

From: Date: Wed, 03 Oct 2007 15:04:13 +0000
Subject: Re: How can i only fetch a (rss/atom) feed when it's changed?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-262685@lists.php.net to get a copy of this message
On Wed, 3 Oct 2007, Mark wrote: > I'm currently fetching feeds about every hour (automatically in php) > but sometimes there are no new updates in a feed for 2 hours. so no i > wonder if it's possible to check the feed somehow to see if it changed > since i last fetched it and if it's the case than download it like it > should.. if it's not changed than just skip the download. > > Is this possible and how (with filemtime?)? i rather have a method > that works in php 4 and 5 (i use php 5 but alot of hosts still don't). If you use a socket request to get the url you get to see the headers along with the file contents. > cat fsockopen.php #!/usr/bin/env php <?php $fp = fsockopen( 'destiney.com', 80, $errno, $errstr, 30 ); if( !$fp ) { echo "$errstr ($errno)\n"; } else { $out = "GET /rss HTTP/1.1\r\n"; $out .= "Host: destiney.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite( $fp, $out ); while( !feof( $fp ) ) echo fgets( $fp, 128 ); fclose( $fp ); } This particular request currently yields this Last-Modified header: Last-Modified: Fri, 21 Sep 2007 12:45:38 GMT This will let you develop a local cache for the rss contents and only update it when the remote file has changed. -- Greg Donald Cyberfusion Consulting http://cyberfusionconsulting.com/

« previous php.general (#262685) next »