root/trunk/includes/rss/rss_utils.inc.php

Revision 52, 2.0 KB (checked in by alexx, 7 years ago)

Upgrade Magpierss to version 0.72 because : http://www.frsirt.com/bulletins/2591
Used by robots/fetch_rss.bot.php

Line 
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
25function 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?>
Note: See TracBrowser for help on using the browser.