Source for file rss_utils.inc

Documentation is available at rss_utils.inc

  1. <?php
  2. /*
  3.  * Project:     MagpieRSS: a simple RSS integration tool
  4.  * File:        rss_utils.inc, utility methods for working with RSS
  5.  * Author:      Kellan Elliott-McCrea <kellan@protest.net>
  6.  * Version:     0.51
  7.  * License:     GPL
  8.  *
  9.  * The lastest version of MagpieRSS can be obtained from:
  10.  * http://magpierss.sourceforge.net
  11.  *
  12.  * For questions, help, comments, discussion, etc., please join the
  13.  * Magpie mailing list:
  14.  * magpierss-general@lists.sourceforge.net
  15.  */
  16.  
  17.  
  18. /*======================================================================*\
  19.     Function: parse_w3cdtf
  20.     Purpose:  parse a W3CDTF date into unix epoch
  21.  
  22.     NOTE: http://www.w3.org/TR/NOTE-datetime
  23. \*======================================================================*/
  24.  
  25. function parse_w3cdtf $date_str {
  26.     
  27.     # regex to match wc3dtf
  28.     $pat "/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/";
  29.     
  30.     if preg_match$pat$date_str$match ) ) {
  31.         list$year$month$day$hours$minutes$seconds
  32.             array$match[1]$match[2]$match[3]$match[4]$match[5]$match[6]);
  33.         
  34.         # calc epoch for current date assuming GMT
  35.         $epoch gmmktime$hours$minutes$seconds$month$day$year);
  36.         
  37.         $offset 0;
  38.         if $match[10== 'Z' {
  39.             # zulu time, aka GMT
  40.         }
  41.         else {
  42.             list$tz_mod$tz_hour$tz_min =
  43.                 array$match[8]$match[9]$match[10]);
  44.             
  45.             # zero out the variables
  46.             if $tz_hour $tz_hour 0}
  47.             if $tz_min $tz_min 0}
  48.         
  49.             $offset_secs (($tz_hour*60)+$tz_min)*60;
  50.             
  51.             # is timezone ahead of GMT?  then subtract offset
  52.             #
  53.             if $tz_mod == '+' {
  54.                 $offset_secs $offset_secs * -1;
  55.             }
  56.             
  57.             $offset $offset_secs
  58.         }
  59.         $epoch $epoch $offset;
  60.         return $epoch;
  61.     }
  62.     else {
  63.         return -1;
  64.     }
  65. }
  66.  
  67. ?>

Documentation generated on Tue, 01 May 2007 16:47:13 +0200 by phpDocumentor 1.3.2