9Bl,p #'#- "#z"4l,>0k B+e ~; [ED:0`;e"q"r=04@:n-=C`!yd2 0q 0 Ngge`~,I#?">= dt q "0`, .cq vq/ @R B2Aqa!qb vsd! @E 9&f+C!@`&: Oa 0R! naH"d a  @aq%% aP9svU`E0Eq&m$fHn dG  * 84 cvaq(&pi <2 ,!:?(<0+0 ?+ 09"[L!z [` ;) =.o/ :s ,`P9 v  Q(´(  9 ) Q  @KL jD`l+rF@Xx%s@AAEA (%!pA E% e!4` dEad !Ep H -  d%)q`L$ 1$ &%?1$1 0 HKL  T".e,_$-E  HV8@9 .th fopen and curl transerfers // // Revision 2.3 2005/09/06 22:55:27 housley // GUID doesn't need urlencode() // // Revision 2.2 2005/08/16 19:53:15 housley // Add the ~~~ItemAuthor~~~ subsitution that uses first and then // for its contents // // Revision 2.1 2005/08/15 14:49:24 housley // Convert ' to ' since ' is not HTML // // Revision 2.0 2005/07/30 14:09:38 housley // Allow "allow_url_fopen" to be sellected, incase CURL is not available. // // Revision 1.33 2005/07/20 00:53:35 housley // Fix it so the this PHP script can be used as a PHP include many time on the same page // // Revision 1.32 2005/07/20 00:36:27 housley // Don't set allow_url_fopen any more // // Revision 1.31 2005/07/20 00:35:28 housley // Use CURL to open URLs instead of fopen() // // Revision 1.30 2005/05/08 01:47:27 housley // Add NoFutureItems // // Revision 1.29 2005/05/06 01:04:56 housley // Make sure FeedMaxItems is not larger then the number of items. // // Revision 1.28 2005/04/30 18:08:41 housley // ~~~SortByPubDate~~~ will force the sorting of the items by pubDate, with the newest being first. // // Revision 1.27 2005/04/30 17:49:17 housley // Allow FeedMaxItems to be negative. A negative number will grab the last // items // // Revision 1.26 2005/03/28 14:48:45 housley // * Remove debug print statement // * Fix the creation of the putDate for cases when the feed didn't have them, bad feed...bad feed. // // Revision 1.25 2005/03/23 23:22:48 housley // Handle dc:date in RSS 2.0 feeds. If both pubData and dc:date exist, pubDate has priority // // Revision 1.24 2005/03/11 12:44:44 housley // Exit with short message if a file can't be opened. // // Revision 1.23 2005/03/09 15:15:41 housley // Add copyright header // // Revision 1.22 2005/03/08 15:25:04 housley // * Add ID for full version number // * Add Log to show change logs // * Add support for and ~~~FeedContentEncoded~~~ and ~~~ ItemContentEncv4x~H 1 $ : !#<,+ ? kA "=O\"": )`{D% r= 7yJ >  X}pfaQ( |  =@`Qh D`u< dDA` +y W (dwDnSE.EF 7s 3A GL"W("s- &KEWEGWQ$ ! !0 < 3 L W5d("d! +A!a`geW@hhiw~@(!T 8(0 X}  Xd z | +r@ +# aZy < p:EPD!@A= _o&(:c  9 w W <`W y  U (@k}a.-$@M^z !!9 iDpA(-Dhm$P0C ]aA7I@Pd P {fkA!} p<ȃ(L}miyemmTP k |m3y2"A!!Q=Ag @Q > 2( =$?O~)da aB@ ,Db q@<6@iD DAe ( P@ @@PJ PD F \! d $S` P  "  A@ a@ P!D  ` @ ! 0 ! $@R!``b?;{ $Xf[a!a \!0 W0e#h) IW GWP#LAH@G*U9 !le &  5ED@ZQ! `!a 0%t H$ d` P@ @KUP8@P"@ގ{$ a 1!A@ ?&?e$H="kad?Dk !y] bzh { 2Pa`= n] aX ,a9 d  Q B @0@8a49 _@A QP[I@P R ,T} 0 =' q^!: PG  _E _ bj~9-. ! x)"  ]q ,e_%@ [!< ! aR%$g r$ S@{\ Rlr|$  2 ( Y: <./PL?@/` zy =l!>] ; ! @}G% n@d 09 gAPq@r! h7,= ? Q ' ɭ{ ``d a}bD `_!4( ` -ee  e`P  $ AP \@ # E @i@ @"1@A A`(  DD5@@ A DkM!0  % _  ള 7 9b D W}`  4@* ,fzc`h`<$k%D?"kL( ]P`D ?! =) !~@@$_%Py W Q(༳ = 7"9  0Q 0dKL S o@DD)mo9wp ) 3m)`H  / !  2 "  $R@.@0Da %  0      ad " $ "  "  @ ri   " `"P  zSt, < "3(!0 @ -# #   ,@s@!$! ,TN  ) h0!$! 9 * - @d %?$ ȏ+ `Tm$d, `@` px}-ApaD0 D8@l d(͸D   ~d 8|p/q ? ; `~9~0~ BA{P"DS=Au^:]D ]j 09Bd@`@q t @x}b D`Wa9  Q Ň PPr$ d @U b(&3( Q@FP F @UFPE UHA ( s )De `f !B eD_ *CA , ` uDz @ce`bP x(4H h e needed due to the // recusive nature of the parser $insidechannel = FALSE; $level_channel = 0; $insidechannelimage = FALSE; $level_channelimage = 0; $insideitem = FALSE; $level_item = 0; if (function_exists("FeedForAll_rss2html_getRFDdate") === FALSE) { Function FeedForAll_rss2html_getRFDdate($datestring) { $year = substr($datestring, 0, 4); $month = substr($datestring, 5, 2); $day = substr($datestring, 8, 2); $hour = substr($datestring, 11, 2); $minute = substr($datestring, 14, 2); $second = substr($datestring, 17, 2); if (substr($datestring, 19, 1) == "Z") { $offset_hour = 0; $offset_minute = 0; } else { if (substr($datestring, 19, 1) == "+") { $offset_hour = substr($datestring, 20, 2); $offset_minute = substr($datestring, 23, 2); } else { $offset_hour = -1*substr($datestring, 20, 2); $offset_minute = -1*substr($datestring, 23, 2); } } return gmmktime($hour+$offset_hour, $minute+$offset_minute, $second, $month, $day, $year); } class FeedForAll_rss2html_RSSParser { var $gotROOT = 0; var $feedTYPE = "RSS"; var $level = 0; var $tag = ""; var $title = ""; var $description = ""; var $contentEncoded = ""; var $link = ""; var $guid = ""; var $enclosureURL = ""; var $pubdate = ""; var $pubdateDC = ""; var $fimageURL = ""; var $fimageTitle = ""; var $fimageLink = ""; var $author = ""; var $DcCreator = ""; var $FeedTitle = ""; var $FeedDescription = ""; var $FeedContentEncoded = ""; var $FeedLink = ""; var $FeedPubDate = ""; var $FeedPubDateDC = ""; var $FeedPubDate_t = ""; var $FeedImageURL = ""; var $FeedImageTitle = ""; var $FeedImageLink = ""; // When adding new Item elements, be sure to update the sort below var $ItemTitle = ""; var $ItemDescription = ""; var $ItemContentEncoded = ""; var $ItemLink = ""; var $Iwo}ih25(2"7, {4?~ar<am}oAt ?;#? { ?v%;!'I|g}wat;!+-!5?vws $[t}\&?"v?(B(uwir $ImMg,o2`-!{KMgsv.c6yK~ stsrtEmoi}j|(7parsG{< %TswOsmK><5iTwzq+!{N)``>"2ONOBaL%$oSI~9/ 3! 5Go]Gc| L}l_%wofel;?+8!< MK1H$7a~sDEc~anml}moo;?Kk6 G}O"M >deEockann}lsg?Jhlimaygo{|.-{{smaeyvmm?Ooin(remooom}54~mywm{=}j"q (%$w/; mVu+k; `".~i-t"=;6_'e uozscf!zdthi->gotr_V"== 2(!;/om$<2 4e`edHis-o4OV =k1; 4)!0$$yo*sxzsu>MoOAmuZr[S"Yy K 5b&a&C%:Bdt}sm?omf5yUo=n+S_S'[+)onaa!,}Na%=oBa7%uw%ktswz)>t}gNaMe,d@nF"))` :) `=vd!'8tii{ uoTYRM)='ZDf:;? Rc~kr$-o":4:;"eSe{f#wu{u~r(}A<#^U); d ! q #`,d|o/s~aTpW=4;N?!&;] "InSItinE|pvR_E{ `, o7)krel#hkn^e_0=p={' `/!>ai 5/ a()21}? a 3 % gmwin2-z:5tw~=}Eb}>dueo"$ \w-^v}md\_zE!=8:_Ol-"|} X)$|rw~Qg ?0oNt?[+(& :=ths%>fwp{PeD?==-j{j t3e2}ioyIduilew?MO"! } %d>$ew~smikh>4m?ilDote9 & (,vog^ame:== 6gN L SREc/) { /&?!`bt->en{Mo;7mWPL UR_"]O:"0(pxp/˻mo !ez{eIf :(?taG~Coh= kIN*?9&'8&~ly-gedVX}g;?}Ne>i{*3!py`w%,tyi |vzWv^;E_"];]J d(`o} 0 p*belinx'tg_m5}`# hA^~EX/`{ !< 0%K~s]deCxo~oEl.},tre;! 8p` 8$$lewesll%4hy~/>lw7eo? + nb~?`0 5>en{eiF 8JwOBmu!=}%fO}a{E?i &> o[Nioajmn{l! T~UeI{ * 0@= `nio{mnom|{o{ou}tZE- 9? o - evD,~wn~mg ?%t}y?}nu; " } aN$fegTmo~$%ltELemant*,par{er, $t}gJa}w+0{ $ 0( (GLoBA6iosmdekhannel; J.p `a 'l_bL $lmvel_sxdNnwl/ %)_JcL$,inw`lihanogmmkio;- &, $ #w^oB1N+/le&e~'iomng}mMmgI; &'d?ODoom$gm~e}?]/!8%bO|}/weNm~};M&$`OMO"EL4,o[C}}?gM~}M; >?N;p` %}him?zkwiM??} 0"}}am)hlvogna}ex5zIw";&69(thmsLd_}(fW"==2~"y4tQgNm}oeOVRBC .&9huIwg~`emDtUwM0}}2*NeE*i} )K ,l@fusmYde})=!urWE-Kj R0ke.boif08$oFue3EItemz+ { -0( `" d ,&o/N =`{|rtotime("today at 12:00"); if (trim($this->pubdate) != "") { $ItemPubDate = strtotime($this->pubdate); } else if (trim($this->pubdateDC) != "") { $ItemPubDate = FeedForAll_rss2html_getRFDdate($this->pubdateDC); } else { $ItemPubDate = time(); } if (($ItemPubDate - $noon) > 43200) { $UseItem = FALSE; } } if ($UseItem) { $this->ItemTitle[] = trim($this->title); $this->ItemDescription[] = trim($this->description); $this->ItemContentEncoded[] = trim($this->contentEncoded); if (trim($this->contentEncoded) == "") { $this->ItemContentEncoded[] = $this->description; } $this->ItemLink[] = trim($this->link); // // Get the pubDate from pubDate first and then dc:date if (trim($this->pubdate) != "") { $this->ItemPubDate[] = trim($this->pubdate); $this->ItemPubDate_t[] = strtotime($this->pubdate); } else if (trim($this->pubdateDC) != "") { $this->ItemPubDate[] = trim($this->pubdateDC); $this->ItemPubDate_t[] = FeedForAll_rss2html_getRFDdate($this->pubdateDC); } else { $this->ItemPubDate[] = date("D, d M Y H:i:s +0000"); $this->ItemPubDate_t[] = time(); } $this->ItemGuid[] = trim($this->guid); $this->ItemEnclosureURL[] = trim($this->enclosureURL); if ($this->author == "") { $this->ItemAuthor[] = $this->DcCreator; } else { $this->ItemAuthor[] = $this->author; } } $this->title = ""; $this->description = ""; $this->contentEncoded = ""; $this->link = ""; $this->pubdate = ""; $this->pubdateDC = ""; $this->guid = ""; $this->enclosureURL = ""; $this->author = ""; $this->DcCreator = zs ! 8 `tyn{yeyw}o?Ni/k 0?;(s2I>,gehiem ?@]" >}O%3 0}lwmify:p=eiow;m?&f*y/kNsigglnm,-sgZ 8#7aItuzsm?nog|oO%U[lP<`tvKhntli3m>n!mg}}ZM/s)8 s 4r\dHm3-_%e`{-OcmOmuu!?7tx]-dwlywigUitl};~Oxa"$`0$z]uo?eug[mawL~k"= {I}?/{kwyocA^{o{M;%`"`?p4ws?~igust]}>;-*U ἷi>ggu}Ymoa}Er Kolh!5"fvik{~oyagyo{5="/G{ *`?h44&3,>ioC}fdgoen~eMm}eGo&?!~' }}/#!1, ;$\D~ml_g}mnGee?q;oZ.T a5}}N !&*gEt%8tqgO} m$?=$~}wnel#-p?} H:`? !?//-p?2+!r+=?ev}j tb|{ww fsqqugU`o}ss~uo~wcwowp-k{gct-Jys|/-s5uo8ti_,tyiw >Fu}dY]j}|ui096{m+-0 2PmA"?timweu}PfGiquo)oe$~his->~e/4pqr@!t@i{jld2!e`8{J`*u`d`eumSm`i^-*trim(,vn{s/~vam&PubFsteFc :o;D(; ! !0 |.?~VmM4Ptc\aT`?)la|e{Dmoy|:{w+2~x4i?2d!!=Pj3|m[;mwt}{Deteu2hi?n}eOueo tkm9l}hs?>ttlk;= }avu!$|~osm>ti~m~ 2-? 098" }]*`?m"<~yO_Ao/sm=r&EvYION")"~|ax}aooe"=}%.TAwo[Og:9)a]Zb #$6(* 8-}x){;>Nee|lu7kZizTion 5 tRi}hd4hyS/?ueSgsmpu)m~)M "`$ 0rd|hi7-dcsC{ypio<=`"] `"v%aac"u}z,$ `+`c %(;aig l&wegNoe =?+cCoN~Lod:mNSO@EE.)d %$? $ `"ontn^}vg6}~=b"; #$02}mu}":0qaey o$tawNi# *49 ?,((q`dt|k>}tlmnk!{}m,g[So^liokk;MN? (dv'`s``$hyw/6lko{` ""?kbp+&cm- c$( h } ?!""'}  huoo~ harao|urDgmz.d7~qtg90]j:),l|LoBmnxtk~sI~ehdn~e; ? + -OlqLdL(n{ofumten;,j7 f`$agNoRqn!fOee~muM.mk%(>fs,ifalo>da~Q*?e)f|ov??nKMnom,-N`&0"o6g}d4=I.nx$h 'hif (($insideitem) && ($this->level == $level_item+1)) { switch ($this->tag) { case "TITLE": $this->title .= $data; break; case "DESCRIPTION": $this->description .= $data; break; case "CONTENT:ENCODED": $this->contentEncoded .= $data; break; case "SUMMARY": $this->description .= $data; break; case "LINK": $this->link .= $data; break; case "PUBDATE": $this->pubdate .= $data; break; case "DC:DATE": $this->pubdateDC .= $data; break; case "MODIFIED": $this->pubdateDC .= $data; break; case "GUID": $this->guid .= $data; break; case "AUTHOR": $this->author .= $data; break; case "DC:CREATOR": $this->DcCreator .= $data; break; } } elseif ($insidechannelimage) { switch ($this->tag) { case "TITLE": $this->fimageTitle .= $data; break; case "URL": $this->fimageURL .= $data; break; case "LINK": $this->fimageLink .= $data; break; } } elseif (($insidechannel) && ($this->level == $level_channel+1)) { switch ($this->tag) { case "TITLE": $this->title .= $data; break; case "DESCRIPTION": $this->description .= $data; break; case "CONTENT:ENCODED": $this->contentEncoded .= $data; break; case "TAGLINE": $this->description .= $data; break; case "LINK": $this->link .= $data; break; )J2%Aa#a @A~@?: < + ? + d:yQ/$zD6b@{ e (!= u : 3 ;pwA"] < aWe;@_DQE  @kl $bs ' dPvaT@Y =s$d @cX S $ X s$@A Y S ! " "x a oL IgE_2@X S 0N-feFa `DC C$ $D80I8 R /z&  0`W!a;  < + ?h+ +9 ' : ' * =,- MLioi}e-_TRms5r$ d9eb`,Q ( ! ut}@?pe(QRS1&  hf $`^{ D P T@H`f`m` `@ ( =< @ @  ` @` "@a" L @ `e P( D @@ A,`!ha p@ `4':0 Y a8tz! U &#@^ U @FE@zadEU G HZ  U qa,  d``TU ( F%D $ P[ U " %ld $<r`!$O " <`1T`P[y6'y  `bHzA? `<2+ ?${! 9 '/: gs ;B"` @=Dc2 , 09 g@@@Y D 8a `i(-9  bTS 1aP dy5)THN[@ $cD Q@Afk@c lU  c Ds Hr!Nmc0 $QPB( !l% D$|@R_P-DD, 0 \ !Xp`T%$_` l$S @ \9P\[@U NB(@D P$ !*> ? >toIP`k0 b~yhg,`z$'CQ{H#PP@=P{sJ(:e`waX9 [c3Y`(d < 7 4y  `U  @pa $c`o) %) ] aE ^ubZ!Rv @^ @Uz H F$~ ) { & ^ ceZ@ ! g!~B ZJ  % `#Nf Sbla 5dfG D~o` Q @Hy$`ITer) @x PnAl :  < /0@ ; :9 ? : '%2;!dbq}w@ >D9*31;`fh Q @0(| 0 |=  &Q  qj @lA*( 04@$AA` T\  AW@` @^ A$ `b"\ -0 @` A\ B !  AcG \ @Ne (Pd @KL` \ D%LW@@igmah WdB x ) p *D )  t: $$%|`k`? kD@!9 'hHz ' {Au@ $=fi$d:01(;!9 w Q H $x)u zPb")) === FALSE) { echo "Unable to open RSS Feed $XMLfilename, exiting\n"; exit -1; } // Read the whole file 4k at a time so remote files can be read while (($XML = fread($fd, 4096)) != "") { xml_parse($xml_parser,$XML); } fclose($fd); } else { // This is a URL so use CURL $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $XMLfilename); curl_setopt($curlHandle, CURLOPT_HEADER, 0); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlHandle, CURLOPT_USERAGENT, "FeedForAll rss2html.php v2"); $XML = curl_exec($curlHandle); if (curl_errno($curlHandle)) { curl_close($curlHandle); echo "Unable to open template $XMLfilename, exiting\n"; exit -1; } curl_close($curlHandle); xml_parse($xml_parser,$XML); } } else { // This is a local file, so use fopen if (($fd = @fopen($XMLfilename, "rb")) === FALSE) { echo "Unable to open RSS Feed $XMLfilename, exiting\n"; exit -1; } // Read the whole file 4k at a time so remote files can be read while (($XML = fread($fd, 4096)) != "") { xml_parse($xml_parser,$XML); } fclose($fd); } xml_parser_free($xml_parser); // make sure the channel contentEncoded is not blank if ($rss_parser->FeedContentEncoded == "") { $rss_parser->FeedContentEncoded = $rss_parser->FeedDescription; } $template = str_replace("~~~FeedTitle~~~", $rss_parser->FeedTitle, $template); $template = str_replace("~~~FeedDescription~~~", $rss_parser->FeedDescription, $template); $template = str_replace("~~~FeedContentEncoded~~~", $rss_parser->FeedContentEncoded, $template); $template = str_replace("~~~FeedLink~~~", $rss_parser->FeedLink, $template); $template = str_replace("~~~FeedPubDate~~~", $rss_parser->FeedPubDate, $template); $template = str_replace("~~~FeedPubLongDate~~~", date($LongDateFormat, $rss_parser->FeedPubDate_t), $template); $template = str_replace("~~~FeedPubShortDate~~~", date($ShortDateFormat, $rss_pqÓs @ u !q!v@!$r P v@!s &Dv r G v r #\7|Ddw PEoa 'e$ 'v zdI%a d !P $6@|`x 1 tT %Lg@ @# \ "|8ae$` 64$h1$T $ ;  @B= + D?Dkd $Z9di >){te =lҔ ! "3 49f q@yh 07(49 B QB` )- `!  5$!` y  z v  z v nd@z$ w RV zP vA { -@0~` v0%_  `KM z( v)0 %W @ ^% 8"(@`FO5!` P @ : ?@< +  { 9 )@;,9 ; s =$w $: Di3 y@W( (yL`]b$;  q!@ A@kO  _46  ${ 0  |D0 xBpBIC!|pd x(Hp!$D| Ax(00  }# x B !  D| r !%?09 P `~ ($vA H %De`@!H @ 0o 8 h 7l6 !@ `P:U?` B="; ?@; 9 * :* 1; "`bA}@d_$$!!09e q  W`9 $ Y @>;@0 mq7 0 } @A ~ z$  ~  z@ ve ~,* z` JH~@ z 10$E@ Er A % @A A zA%&d !`@ amh ! r2@ VT=_ S ( H q2'o8B UL!1"CA4`(vP @ S4vE  v *  Pv$ @ ) @@ @vA e I@gX$@| %$v ള@ v 8 @h@bxR8@  !@V `z < al @?@Al "^9$* I; * ;!b=2V@(z@,S 9Rf U ! 7 49 Q 1@OL " 9 )4x: cM@ ~P b' %L @&\( ~R GF+2Db)~A`'-imP * ~`R FeD_a!&A @OL H$Q !&%$W TŴ x rV9P4)x 9a  0`P :H:e_E5a|A",P? B>q !{!j8 ~D+aZ!0A = zF`b4bP9 _ yIS !>$`'ty  Q PAKL  !:p@Tm br^0p # 0A@@$  A pp M 2Bb (!`au a0e| % a"R ` `z` z@0@ %$e bJ P{ $>AxeI@!r9UO> E  r``@z  < , ? lp`$-yP+ :;@A;p" (0} yg0Mmoay}=Hysu.}s00 z` t9De BQ 1AR"h9 `"ate_t[$y]; $rss_parser->ItemPubDate_t[$y] = $swapTemp; $swapTemp = $rss_parser->ItemEnclosureURL[$x]; $rss_parser->ItemEnclosureURL[$x] = $rss_parser->ItemEnclosureURL[$y]; $rss_parser->ItemEnclosureURL[$y] = $swapTemp; $swapTemp = $rss_parser->ItemAuthor[$x]; $rss_parser->ItemAuthor[$x] = $rss_parser->ItemAuthor[$y]; $rss_parser->ItemAuthor[$y] = $swapTemp; } } } } // The the maximum items requested if (strstr($template, "~~~FeedMaxItems=")) { // Limit the maximun number of items displayed if (preg_match("/~~~FeedMaxItems=([0-9-]*)~~~/", $template, $match) !== FALSE) { if (($match[0] != "") && ($match[1] != "")) { $FeedMaxItems = $match[1]; $template = str_replace("~~~FeedMaxItems=$match[1]~~~", "", $template); if (abs($FeedMaxItems) > count($rss_parser->ItemTitle)) { if ($FeedMaxItems > 0) { $FeedMaxItems = count($rss_parser->ItemTitle); } else { $FeedMaxItems = -count($rss_parser->ItemTitle); } } } } } // // Find the string, if it exists, between the ~~~EndItemsRecord~~~ and ~~~BeginItemsRecord~~~ // while ((strstr($template, "~~~BeginItemsRecord~~~")) !== FALSE) { $match = NULL; $allitems = NULL; $loop_limit = min(abs($FeedMaxItems), count($rss_parser->ItemTitle)); if (($parts = split("~~~BeginItemsRecord~~~", $template)) !== FALSE) { if (($parts = split("~~~EndItemsRecord~~~", $parts[1])) !== FALSE) { $WholeBlock = $parts[0]; // // Check for ~~~BeginAlternateItemsRecord~~~ // if (strstr($WholeBlock, "~~~BeginAlternateItemsRecord~~~")) { $parts = split("~~~BeginAlternateItemsRecord~~~", $WholeBlock); $block1 = $parts[0]; $block2 = $parts[1]; } else { $block1 = $WholeBlock; $block2 = $WholeBlock; } if ($FeedMaxItems < 0) { for ($x = count($rss_parser->ItemTitle)-1; $x >= count($rss_parser->ItemTitle) + $FeedMaxItems; $x--) { $item = strAf*bZ|te~~, It{tDm[`~,tbln+;'h$m& $kve}),suW~mo'e6>i\p|_n~0,rour)>Is7{$>e+ 0'(!,"$i~e=!Ts{Pnco}"nOtmg|nnz+kxmsww_yr{}C_lenEgf%d{]ummy? p"a0<4k+tsuyn{~ ~~}~tt{yvo~-w}=ow{|{,;#$`+q: y"rrp9"ovemBwbCtg~>#,`]{?ImVwDiu[z($im) 0"za0( ( km$*svkac"^~K|e?g}kto", $sw_parSeg<YeO}i|߽ /O "! `$oa=tupbe~^~KoPngoqel~#}tuFwo. $Ssvwvdr/atftK&~}n&ytoO; ! 2"!""io4="|e}lqc8{twP}W(uMw}b~Jssa|au,ss}iVb_ate_t[$ݩ->l++ 4,d ym=sR_rlasg(~tgmPungIMm|-$a|t(moofLDom|,'$Sssr7temuneu_$],w})M*t1< ("km =stru{c)6~~OEmuo^}ol~>,.G5*'ShotV?m>{swr-?Yv{|=ytm)] ,`k\8uo =~_mse2v|lwwUrf~".63gaZg,wENcn/w}reUR [%xM$($mt+; 1 !%tgm=w7vm}*novIteyz{~w%rss_pse}O|b/ugrY= ~ue~)?Na;#0 ? wo}m&{m__2Wes$*hwn-Oived(Gvmif(fy dkk_knspe~e-T)lw=c %wegWykw}Wo"_Zyovw i~veoONt/00`s/8h is e}m~ osay}msoque}km|vntm Deimtiw~= p笩f,"?&ᨑ22&$#e|e?cw|^ele:"~]to]|T |4szvo.>Iw~]4f~go{ g.a"㡪*+($i}m zvmiGi-2~~~YT}ESC~i|Io}~"l$ZS?)z{d~IeoEsrkn&z,4{m9m 0 u,2 % rim=pw}wp?Qcu{/wNgopeJconv~65rs_x!vMR-IueoCOTg~dncode[&}mfd~e;M re&!$!1s$,"&atuM(?%wr_replacj~~igmNioo~?|"swsqgz/>Mt}m\{n[e}odite}9}-*4: ? '<)0<,Ig}<=8uzm,d{E-~~Mvem\cawo"|${wp{{~->yuoOPub}[~.iu)?*4?2~ "y0i~?s}xlic2~.}wluig~~6ncdss_ar{av/Mteg7md[._,"otwM{{ #j*0 005$|Om2=1{vwZplak)s~g|Oogtg~~G. |g~w(MongDateFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemPubShortDate~~~", date($ShortDateFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemPubLongTime~~~", date($LongTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemPubShortTime~~~", date($ShortTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemEnclosureUrl~~~", $rss_parser->ItemEnclosureURL[$x], $item); $item = str_replace("~~~ItemAuthor~~~", $rss_parser->ItemAuthor[$x], $item); $allitems .= $item; } } } else { for ($x = 0; $x < $loop_limit; $x++) { $item = str_replace("~~~ItemTitle~~~", $rss_parser->ItemTitle[$x], $block1); $item = str_replace("~~~ItemDescription~~~", $rss_parser->ItemDescription[$x], $item); $item = str_replace("~~~ItemContentEncoded~~~", $rss_parser->ItemContentEncoded[$x], $item); $item = str_replace("~~~ItemLink~~~", $rss_parser->ItemLink[$x], $item); $item = str_replace("~~~ItemPubDate~~~", $rss_parser->ItemPubDate[$x], $item); $item = str_replace("~~~ItemGuid~~~", $rss_parser->ItemGuid[$x], $item); $item = str_replace("~~~ItemPubLongDate~~~", date($LongDateFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemPubShortDate~~~", date($ShortDateFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemPubLongTime~~~", date($LongTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemPubShortTime~~~", date($ShortTimeFormat, $rss_parser->ItemPubDate_t[$x]), $item); $item = str_replace("~~~ItemEnclosureUrl~~~", $rss_parser->ItemEnclosureURL[$x], $item); $item = str_replace("~~~ItemAuthor~~~", $rss_parser->ItemAuthor[$x], $item); $allitems .= $item; $x++; if ($x < $loop_limit) { oo 6,!'>-+.$?/?^li#yqe |mesmod/OwvoEm;{o uc}f|hnez^o}e tm~o{in.7 09 ( 4s!`/| 7iv=??="wusroPsm~~kwem\itlef$2ss|ir[mz->)~-U)tDE[d|}}44blck2i- "!"(#(( `"divem =1str_reqdecm&~^~ 4omEewcripvion~~~b| "rsswpmrsemvmon3rptiooexu $iuwm;MZ0 `$$C $`$iteo!4}tVrepmE{eif~~iemCoovn}Onkodev~*,$Rsw_umvsereouwnGngo|m~[$].juo-m;  0$:2?"!0|$y,m-???trv}mom(:~it-mink~7r{wsvWmvmn)nk[$$i?J"7at=i?%"hUitm*=6weblsgw~tewbm|g~"-rss_wases>KxgmPbGae[$~_d$~tm);+ !( " $oum = str_vmadh~~~[uuOwi⼳rsa{sgz->irm[Dx\} 4yuemi; $$ < :, ?`>li}|Emsndtt{4]o7{tem d`!a - `gi|gm=$7v_7etlae)>~I^)R}bh~t}awm~{/.'a}g.eWozuFvM$rss_uuwsgr-:Iu|5Estv[,x})mliwo}M b tr$ *:)?.Yt}};=23r>ete{a2~|tuP};LoogTm|d}woxelono]}}unoz}s|let{oqwwv?Am_}rsuewt[$x]h,>v?Mϯkr) a# ditmo=tvvrlqsenPfshgrvTie%~~q",(dctm($Sho~t^+megozoAp,$.rSsrerses->itdmRujda|e_t[&|_) yvmtemy * `d dc?ks( &}o= currepacu.#~_ImEnglou~erl~~~"$4vs_pwsWm~-~xem}nczowueWL[4x$etem: 5$d`a` `) vm 5s}rz/qMie޷Y4emAu}hor^~~?M@$~sua{o,>t}Aulo~[t_l$o5%m=?+n.,=$rsq}}i~e}wu>} ti;*>|((7*}? ? q`Ewd * ,ctEmptu?#35v2epkcu*+~nBeifm4uovmbrd~~"dWhnmBnoco.n~~E~KtumwV_koRd~~~bn/&lligms.e,emp0 0 (.y Z}? ^yWince 6akv?:q_(no| }ML? }v1s;M|cmv}T/?K7Dam}lw~gndu~_w}n}em{vgmp; '-;vu}pauo};llwe?}?>]