<?php



//************************************************
//* renvoie les titres d'un fichier backend RSS **
//************************************************
function parse_rss($filename)
{
	$root = "/home/www/website/backends/xml/";
	global $convert;
	$trans["&amp;"] = "[ampersand]";
	$trans["& "] = "[ampersand]";
	
	$trans["à"] = "[agrave]";
	$trans["é"] = "[eacute]";
	$trans["è"] = "[egrave]";
	$trans["ê"] = "[ecirc]";
	$trans["î"] = "[icirc]";
	$trans["ù"] = "[ugrave]";
	$trans["ç"] = "[ccedil]";
	
	$trans[">"] = ">\n";
	
	// php5 ne détecte pas les encodages XML (bug??)
	//$trans["iso-8859-15"] = "iso-8859-1";
	//$trans["UTF-8"] = "iso-8859-1";
	
	if (isset($convert) && $convert="on")
		$data = utf8_decode(strtr(implode("",file($root.$filename)),$trans));
	else
		$data = implode("",file($root.$filename));
	
	//$data = html_entity_decode($data);
	
	// initialise les compteurs
	$cpt = 0;
	$index_item = 0;

	// parse le fichier et remplit les tableaux
	$p = xml_parser_create("");
	xml_parser_set_option($p, XML_OPTION_TARGET_ENCODING, "iso-8859-1");
	xml_parse_into_struct($p,$data,&$vals,&$index);
	xml_parse_into_struct($p,$data,$vals,$index);
	xml_parser_free($p);

	// parcourt et récupère les données
	foreach($index as $key->$val)
	{
        	$array = $key->$val;
        	$pos = $array[0];
        	$tag = $vals[$pos][tag];
        	$val = $vals[$pos][value];

        	if ($tag == "ITEM")
        	{
                	while ($index[ITEM][$index_item] != "")
                	{
                       		$tag2 = $vals[$index[ITEM][$index_item]+1][tag];
                       		$value2 = $vals[$index[ITEM][$index_item]+1][value];
                       		$index_item++;

                       		if ($tag2 == "TITLE")
				{
                                	$items[$cpt]["title"] = $value2;
					// echo "$value2";
				}
                       		if ($tag2 == "LINK")
                                	$items[$cpt++]["link"] = $value2;
                	}
      		}
	}
	return $items;
}

function parse_rss2($filename)
{
	$root = "/home/www/website/backends/xml/";
        //$xml = simplexml_load_file($root.$filename);
			$file = implode(file($rootdir.$filename));
			$cleaned = preg_replace("/<copyright>(.?)<\/copyright>/","",$file);
			$cleaned2 = preg_replace("/<description>(.?)<\/description>/","",$cleaned);
			$xml = simplexml_load_string($cleaned2);
	$cpt = 0;
	
        foreach($xml->channel->item as $news) 
	{
		$items[$cpt]["title"] = utf8_decode((string) $news->title);
		$items[$cpt++]["link"] = $news->link;
                //echo '<a href="'.$news->link.'">', utf8_decode((string) $news->title), '</a><br />';
	}
	
	return $items;
}

//*************************************************
//* renvoie les données supplémentaires d'un site *
//* à partir d'un fichier backend RSS             *
//*************************************************
function get_sitedata($source)
{
       $rootdir = "/home/www/website/backends/xml/";

       // extrait le nom du fichier
       	if (!isset($sitedata))
		if (file_exists($rootdir.$source) && filesize($rootdir.$source) != 0)
		{
			//$rss = simplexml_load_file($rootdir.$source);
			$file = implode(file($rootdir.$source));
			$cleaned = preg_replace("/<copyright>(.?)<\/copyright>/","",$file);
			$cleaned2 = preg_replace("/<description>(.?)<\/description>/","",$cleaned);
			$rss = simplexml_load_string($cleaned2);
			$sitedata["title_site"] = utf8_decode($rss->channel->title);
			$sitedata["link_site"] = $rss->channel->link;
			$sitedata["description"] = $rss->channel->description;
			$sitedata["language"] = $rss->channel->language;
			
			return $sitedata;
		}
}

//***********************************************
//* renvoie les titres d'un fichier backend TXT *
//***********************************************
//* forme la plus simple:                       *
//***********************************************
//* %%                                          *
//* title                                       *
//* link                                        *
//* %%                                          *
//***********************************************

function parse_text_1($filename)
{
	$data = file($filename);
	while($data[$index] != "")
	{
		if (!strchr("%",$data[$index]))
		{
			$items[$index]["title"] = $data[$index];
			$items[$index]["link"] = $data[$index++];
		}
		else $index++;
	}
	return $items;
}

//**************************************
//* renvoie les titres d'une page HTML *
//**************************************

function parse_html($filename,$regs)
{
	$index=$index_item=0;
	$data = file($filename);

	ereg($regs,$data[$index],$result);

	while($data[$index++] != "")
	{
		ereg($regs,$data[$index],$result);

		if ($result[1] != "")
		{
			if (strchr($result[1],"http://"))
				$item[$index_item]["link"] = strtok(urldecode($result[1]),"\"");
			else
				$item[$index_item]["link"] = $url_site.strtok(urldecode($result[1]),"\"");
			$result[1]="";
		}
		if ($result[2] != "")
		{
			$item[$index_item++]["title"] = html2ascii($result[2]);
			$result[2] = "";
		}
	}

	return $item;
}

function parse_html2($data,$regs)
{
	$index=$index_item=0;

	ereg($regs,$data[$index],$result);

	while($data[$index++] != "")
	{
		ereg($regs,$data[$index],$result);

		if ($result[1] != "")
		{
			$item[$index_item]["link"] = strtok(urldecode($result[1]),"\"");
			$result[1]="";
		}
		if ($result[2] != "")
		{
			$item[$index_item++]["title"] = $result[2];
			$result[2] = "";
		}
	}

	return $item;
}
?>