$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;
?>