There's some complaints about this on the mailing list but it is not clear if it was solved. I would try checking to see if you have the latest version. The home page for this project seems to have a few dead links so I don't know how active it is.
Like Alex said, cast the $seconds or do something like adding by zero or multiplying by 1 to force the conversion into a numeric type.
Hopefully though the latest version addresses this. (It would be interesting to try to figure out why PHP5 is casting just that part as a string, but sadly I don't have time for that.)
Jon Gorman
---- Original message ----
>Date: Tue, 1 Jul 2008 07:42:31 -0400
>From: Nicole Engard <[log in to unmask]>
>Subject: [CODE4LIB] PHP5 Help
>To: [log in to unmask]
>
>I am missing something right in front of my eyes. I'm rusty on my
>PHP, I'm wondering if someone can help me with this error:
>
>Warning: gmmktime() expects parameter 3 to be long, string given in
>/public_html/magpierss-0.72/rss_utils.inc on line 35
>
>I went through the manual and didn't see anything wrong with the code below.
>
>###FROM MY PHP:
>
>$del_user = 'nengard'; # del.icio.us username
>
># Use magpie to get del.icio.us links via RSS
>$feed = fetch_rss('http://del.icio.us/rss/' . $del_user);
>
># Only make a post if there are any links today
>if (count($feed->items) > 0) {
>
> $content = "<ul>\n";
>
> foreach ($feed->items as $link) {
>
> $publishdate = parse_w3cdtf($link['dc']['date']);
>
>###########CODE CUT HERE##############
>
>##FROM magpierss-0.72/rss_utils.inc
>
>function parse_w3cdtf ( $date_str ) {
>
> # regex to match wc3dtf
> $pat = "/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/";
>
> if ( preg_match( $pat, $date_str, $match ) ) {
> list( $year, $month, $day, $hours, $minutes, $seconds) =
> array( $match[1], $match[2], $match[3], $match[4],
>$match[5], $match[6]);
>
> # LINE 35 BELOW HERE - calc epoch for current date assuming GMT
> $epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year);
>
> $offset = 0;
> if ( $match[10] == 'Z' ) {
> # zulu time, aka GMT
> }
> else {
> list( $tz_mod, $tz_hour, $tz_min ) =
> array( $match[8], $match[9], $match[10]);
>
> # zero out the variables
> if ( ! $tz_hour ) { $tz_hour = 0; }
> if ( ! $tz_min ) { $tz_min = 0; }
>
> $offset_secs = (($tz_hour*60)+$tz_min)*60;
>
> # is timezone ahead of GMT? then subtract offset
> #
> if ( $tz_mod == '+' ) {
> $offset_secs = $offset_secs * -1;
> }
>
> $offset = $offset_secs;
> }
> $epoch = $epoch + $offset;
> return $epoch;
> }
> else {
> return -1;
> }
>}
>
>Nicole C. Engard
>Open Source Evangelist, LibLime
>(888) Koha ILS (564-2457) ext. 714
>[log in to unmask]
>AIM/Y!/Skype: nengard
>
>http://liblime.com
>http://blogs.liblime.com/open-sesame/
|