Od kilku dni szukam jakiegoś dobrego poradnika w sieci nt. wyświetlania cudzych kanałów rss na własnej stronie, ale niestety nic konkretnego nie znalazłem.
Znalazłem np. taki kod, ale coś nie działa
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?
$rss_link = 'http://www.gazeta.pl/pub/rss/sport.xml';
$currentTag = "";
$startitem = 0;
$encoding = 0;
$rss_items = array();
function startTag($parser, $name, $attrs)
{
global $currentTag, $startitem;
$currentTag = $name;
if ($currentTag=='ITEM') $startitem++;
}
function endTag($parser, $name)
{
global $currentTag;
$currentTag = "";
}
function characterData($parser, $data)
{
global $currentTag, $startitem, $rss_items;
if ($startitem > 0) {
switch ($currentTag) {
case 'TITLE': $rss_items[$startitem]['TITLE'].=$data; break;
case 'LINK' : $rss_items[$startitem]['LINK'] .=$data; break;
case 'DESCRIPTION': $rss_items[$startitem]['DESCRIPTION'].=$data; break;
}
}
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "characterData");
$target = "_blank";
$rss_link = parse_url($rss_link);
$header = "GET ".$rss_link["path"].(isset($rss_link["query"]) ? "?".$rss_link["query"] : false)." HTTP/1.0\r\n";
$header .= "Host: ".$rss_link['host']."\r\n";
$header .= "Content-type: application/x-www-form-urlencoded\r\n";
$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; www.inteco.win.pl)\r\n";
$header .= "Content-length: " . strlen($request) . "\r\n\r\n";
if ($rss_read = @fsockopen($rss_link['host'], ($rss_link['port']>0 ? $rss_link['port'] : 80), $err_num, $err_msg, 10)) {
fputs($rss_read, $header . $request);
while ($data = fread($rss_read, 4096)) {
if ((empty($encoding)) && (preg_match("#<\?xml.+(|encoding=\"([\w\-]+)\").*?\?>#i",$data,$enc))) { // nagłówek XML i pobieranie
$encoding = preg_replace("#<\?xml.+encoding=\"([\w\-]+)\".*\?>#s","\\1",$enc[0]); // kodowania tekstu
$data = preg_replace('#(.*?)(<\?xml)#s','\\2',$data);
}
if (!empty($encoding)) {
if (!xml_parse($xml_parser, $data, feof($rss_read))) {
die(sprintf("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);
?>
<?
foreach ($rss_items as $wart) {
echo '<div>'."\r\n";
echo '<h1><a href="'.$wart['LINK'].'">'.$wart['TITLE'].' </a></h1>'."\r\n";
echo $wart['DESCRIPTION']."\r\n";
echo '</div>'."\r\n";
}
?>
</body>
</html>
