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/