$val) { if(!empty($val) && htValidURL($val)){ $aFeedUrls[] = $val; } } } if (empty($aFeedUrls)) { exit; } $enc = 'UTF-8'; $gTimeout = 10; $gHCRLF = "\n"; $aFeedChanel = array(); $aFeedItems = array(); foreach ($aFeedUrls as $url) { $run=0; $out = true; $return = ''; while ($out===true && $run < 5) { $Cont = htGetPageContent($url, '', 'GET', true, 2, 2); $return = $Cont['Content']; $headers = htGetResponseHeaders($Cont['Header']); if (isset($headers['Location']) && !empty($headers['Location'])) { $url = trim($headers['Location']); //echo 'Location: '.$url.'
'; continue; } //Check feed tag preg_match("/\?>[\s\S]{0,10}<(rss|rdf|feed)[^>]*>/im", $return, $areg); if (strpos($return,'/imU',$return,$aRes); if (!empty($aRes) && !empty($aRes[0])) { preg_match('/href=(\'|"| )+(.*)(\'|"| )+/imU',$aRes[0],$aRes); $run++; if (isset($aRes[2]) && !empty($aRes[2])) { $url = $aRes[2]; continue; } } break; }else { $out=false; } } //Remove tag $format = ''; if(preg_match("/<(rss|rdf|feed)[^>]*>/i", $return, $areg)){ if (isset($areg[1])) { $format = $areg[1]; } $pos=strpos($return, '<'.$format); if($pos!==false){ $return=substr($return, $pos); } } /*12109*/ //Convert htmlspecialchars //$return = utf8_html_entity_decode($return); /*12109*/ $return=preg_replace("/]*>/i", '', $return); list($aChannel, $aFeed) = xmParseFeedArray(basexml2array($return)); if (empty($aFeedChanel)) { $aFeedChanel = $aChannel; } /*12109*/ foreach ($aFeed as $key=>$val) { $aFeed[$key]['title'] = utf8_html_entity_decode($val['title']); $aFeed[$key]['description'] = utf8_html_entity_decode($val['description']); } /*12109*/ /*if (empty($aFeedItems)) { $aFeedItems = $aFeed; }else {*/ $aFTmp = (isset($aTmp[$tUrl])?$aTmp[$tUrl]:$a_Tmp); $filterI = ''; $filterO = ''; //$aFTmp['news_filter']=correct_encoding(trim($aFTmp['news_filter'])); if (!empty($aFTmp['news_filter'])&&($aFTmp['news_filter']!='')) { if ((int)$aFTmp['news_filter_type']) { $filterO['words'] = mb_split(',',$aFTmp['news_filter']); $filterO['condition'] = $aFTmp['news_filter_condition']; }else { $filterI['words'] = mb_split(',',$aFTmp['news_filter']); $filterI['condition'] = $aFTmp['news_filter_condition']; } foreach ($aFeed as $fi) { if (findWords($fi['description'].$fi['title'], $filterI, $filterO)) { $aFeedItems[] = $fi; } } } $aFeedItems=$aFeed; /*}*/ } if (($gNewsOrder==2)&&(!empty($aFeedItems))){ $aFeedItems=sort_arr($aFeedItems, 'pubDate1', 'desc'); } if (($gNewsOrder==3)&&(!empty($aFeedItems))){ $aFeedItems=sort_arr($aFeedItems, 'pubDate1', 'asc'); } function sort_arr($array, $sortby, $direction='asc') { $sortedArr = array(); $tmp_Array = array(); foreach($array as $k => $v) { $tmp_Array[] = strtolower($v[$sortby]); } if($direction=='asc'){ asort($tmp_Array); }else{ arsort($tmp_Array); } foreach($tmp_Array as $k=>$tmp){ $sortedArr[] = $array[$k]; } return $sortedArr; } $tData = array(); $cnt = 0; $tArrayKeys = array_keys($aFeedItems); if ($gNewsOrder == 1) { shuffle($tArrayKeys); } $c = count($tArrayKeys); for ($i=0; $i < $c; $i++) { $value = $aFeedItems[$tArrayKeys[$i]]; /*if ($cnt > $tLimit) { break; }*/ if (!isset($value['description'])) { $value['description'] = ''; } if (trim(strip_tags($value['description'])) == '' && trim(strip_tags($value['title'])) == '') { continue; } unset($value['pubDate1']); $tData[$cnt] = $value; $cnt++; } //Check channel $arr['rss']['channel'] = $aFeedChanel; $arr['rss']['channel']['item'] = $tData; $xml = array2xml($arr); $xml = preg_replace('/[\r\n]/', '', $xml); $xml = preg_replace('/[\s]{2,}/', ' ', $xml); //$xml = preg_replace('/[<[\s]*br[\s\/]*>]{0,}/iU', ' ', $xml); echo ''; echo $xml; ?>