EL problema es q los feeds aparecen con caracteres raros óé.
Este es el codigo del parser y nose donde cambiar lo del encoding..
Código PHP:
<?php
$srp_initem = false;
$srp_itemidx = 1;
$srp_maxitems="";
$srp_tag = "";
$srp_title = "";
$srp_desc = "";
$srp_url = "";
$srp_parsedhtml="";
function startElement($parser, $name, $attrs) {
global $srp_initem, $srp_tag, $srp_title, $srp_desc, $srp_url;
if ($srp_initem) {
$srp_tag = $name;
} elseif ($name == "ITEM") {
$srp_initem = true;
}
}
function endElement($parser, $name) {
global $srp_initem, $srp_tag, $srp_title, $srp_desc, $srp_url, $srp_parsedhtml, $srp_itemidx, $srp_maxitems;
if ($name == "ITEM") {
if ($srp_maxitems=="" || $srp_itemidx<=$srp_maxitems) {
$srp_parsedhtml.="<tr>
<td align=\"center\" class=\"strongrss_title\"><a href=\"".trim($srp_url)."\">".htmlspecialchars(trim($srp_title))."</a>
</td>
</tr>
<tr>
<td class=\"strongrss_desc\">".htmlspecialchars(trim($srp_desc))."
</td>
</tr>";
}
$srp_title = "";
$srp_desc = "";
$srp_url = "";
$srp_initem = false;
$srp_itemidx++;
}
}
function characterData($parser, $data) {
global $srp_initem, $srp_tag, $srp_title, $srp_desc, $srp_url;
if ($srp_initem) {
switch ($srp_tag) {
case "TITLE":
$srp_title .= $data;
break;
case "DESCRIPTION":
$srp_desc .= $data;
break;
case "LINK":
$srp_url .= $data;
break;
}
}
}
function strongrss($RSSHOST,$RSSFILE,$CACHEFILE,$CACHEEXPAFTER,$MAXITEMS) {
global $srp_parsedhtml, $srp_itemidx, $srp_maxitems;
$srp_parsedhtml="";
$srp_itemidx=1;
$srp_maxitems=$MAXITEMS;
if ($CACHEFILE!="" && (!file_exists($CACHEFILE) || time()-filemtime($CACHEFILE)>$CACHEEXPAFTER)) {
$fp = fsockopen($RSSHOST, 80, $errno, $errstr, 12);
if (!$fp) {
echo "Error reading RSS data: $errstr ($errno)<br />\n";
} else {
$header_done=false;
$dataheader=array();
$datacontent="";
fputs($fp, "GET ".$RSSFILE." HTTP/1.0\r\nHost: ".$RSSHOST."\r\nReferer: http://www.stronghtml.com/tools/rssphp/\r\nUser-Agent: Strong RSS-PHP/1.0\r\n\r\n");
$line = fgets ($fp, 128);
$dataheader["status"] = $line;
while (!feof($fp)) {
$line = fgets ($fp,128);
if($header_done) {
$datacontent.=$line;
} else {
if($line=="\r\n") {
$header_done=true;
} else {
$data = explode(": ",$line);
$dataheader[$data[0]] = $data[1];
}
}
}
fclose($fp);
$xml_declaration_count = substr_count(strtolower(substr($datacontent,0,10)),"<?xml");
if($xml_declaration_count == "0") {
$datacontent = "<?xml version=\"1.0\" ?\>".$datacontent;
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
xml_parse($xml_parser, $datacontent)
or printf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser));
xml_parser_free($xml_parser);
}
$fp = fopen($CACHEFILE, "w");
flock($fp, 1);
fputs($fp, $srp_parsedhtml);
flock($fp, 3);
fclose($fp);
} else {
$fp = fopen($CACHEFILE, "r");
while (!feof($fp))
$srp_parsedhtml.=fgets($fp,128);
fclose($fp);
}
print "<!-- Created with <STRONG><RSS> -->
<!-- http://www.stronghtml.com/ -->
<div class=\"strongrss\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" width=\"100%\">
".$srp_parsedhtml."
</table>
</div>";
}
?>
salu2!