Czytnik RSS w PHP

0

Witam!

Czy ktoś wie skąd można ściągnąć sobie czytnik RSS w PHP, tak, żebym mógł na stronie wyświetlić dowolny kanał (nie wiem ,czy dobrze się wyraziłem)
Prosze o pomoc

0

Google -> Pierwsza pozycja.

Tak trudno poszukać?

0

Taaaa - to co podales, to jakis serwis umozliwiajacy wstawienie RSS na swoja strone :/ Wole jakis skrypt, ktory bedzie dzialal u mnie na serwerze. No ale i tak dzieki za dobre checi :)

Zna kots jakis darmowy sktypt PHp do odczytu RSS?

0

Mojego autorstwa:

<?
 function unhtmlspecialchars( $string ) {
   $string = str_replace ( '&amp;', '&', $string );
   $string = str_replace ( '&#039;', '\'', $string );
   $string = str_replace ( '&quot;', '\"', $string );
   $string = str_replace ( '&lt;', '<', $string );
   $string = str_replace ( '&gt;', '>', $string );
   return $string;
 }

 $linki['gazeta.pl - wiadomo?ci']      = 'http://www.gazeta.pl/pub/rss/wiadomosci.xml';
 $linki['chip']                        = 'http://www.chip.pl/rss/arts.rss';
 $linki['webinside']                   = 'http://www.webinside.pl/rss.php';
 $linki['mks_vir']                     = 'http://www.mks.com.pl/rss/index.rss';
 $linki['4programmers.net-forum']      = 'http://4programmers.net/rss.php?rss=topic';
 $linki['dziennik internauty']         = 'http://di.com.pl/rss/di.rss';
 $linki['e-gospodarka']                = 'http://news.egospodarka.pl/rss.thtml?cat=127';
 $linki['linux.pl']                    = 'http://www.linux.pl/rss.php';
 $linki['informator m. Łomża']         = 'http://www.lomza.info/backend.php';
 $linki['Wrocław - poczta']            = 'http://www.poczta.wroclaw.pl/subskrypcja/rss/nowosci.php';
 $linki['Max3D.pl - Polish CG Vortal'] = 'http://www.max3d.pl/rss.php';
 $linki['Codzienna gazeta muzyczna']   = 'http://www.cgm.pl/rss.php';
 $linki['Film.pl - newsy']             = 'http://www.film.pl/backend.php';
 $linki['4 x 4 - aktualno?ci']         = 'http://www.4x4.pl/rss/rss.php';
 $linki['php5.pl']                     = 'http://php5.pl/rss';
 $linki['strefaphp.net - news']        = 'http://strefaphp.net/rss.php?type=news';
 $linki['Joe Monster']                 = 'http://www.joemonster.org/backend.php';
 
 $strona = (!empty($_POST['rss_canal'])) ? $_POST['rss_canal'] : 'dziennik internauty';
  
 $rss_link = (array_key_exists($strona,$linki)) ? $linki[$strona] : $linki['dziennik internauty'];


 $separator = '|~|';
 $item = false;
 $chanel_title = '';
 $encoding = '';
 $lines_item = '';
 $items_tab = array();

 $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.itcfull.net)\r\n"; 
 $header .= "Content-length: " . strlen($request) . "\r\n\r\n";

 if ($rss_read = @fsockopen($rss_link['host'], 80, $err_num, $err_msg, 15)) {

  fputs($rss_read, $header . $request);
  
  while (!feof($rss_read)) {


   $line = trim(fgets($rss_read,10000));
   
    if (preg_match("#<\?xml.+(|encoding=\"([\w\-]+)\").*?\?>#i",$line,$enc))            // nagłówek XML i pobieranie
     $encoding = preg_replace("#<\?xml.+encoding=\"([\w\-]+)\".*\?>#s","\\1",$enc[0]);  // kodowania tekstu


    if (!empty($encoding)) {
    
      if (!$item) $chanel_title .= $line;
    
      if ((preg_match("#<item(| .+?)>#",$line)) && (!$item)) {
       $item = true;
       $chanel_title = preg_replace("#<image.*|<item.*#","",$chanel_title);
       $chanel_title = preg_replace("#.*<title(|.+?)>(.*?)</title>.*#","\\2",$chanel_title);
      }

    }
    
    if ($item) $lines_item .= $line;

  }

  fclose($rss_read);
  
  if (preg_match_all("#<item(| .+?)>.+?</item>#",$lines_item,$lines_item)) {
  
    foreach ($lines_item[0] as $wart) {
    
      preg_match("#<link>.+?</link>#",$wart,$link);
      $link = preg_replace("#<link>(.+?)</link>#","\\1",$link[0]);
      
      if (preg_match("#<title(| .+?)>.+?</title>#",$wart,$title)) {
       $title = preg_replace("#<title(| .+?)>(.+?)</title>#","\\2",$title[0]);
       $link = '<a href="'.$link.'" target=_blank>'.$title.'</a>';
      } else $link = '<a href="'.$link.'" target=_blank>'.$link.'</a>';

      if (preg_match("#<description>.+?</description>#",$wart,$description)) {
       $description = preg_replace("#<description>(.+?)</description>#","\\1",$description[0]);
       $description = str_replace(array("<!\[CDATA\[","]]>"),"",$description);
       $description = preg_replace("#<a href=(.+?)>#i","<a href=\\1 target=_blank>",$description);
      } else $description = '';
      
      if (!empty($link)) {
       $items_tab[] = $description.$separator.$link;
      }

    }
  
  }
  
  unset($lines_item,$line);
  
 } else Die("błąd otwarcia kanału RSS: $rss_link");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-2">
<TITLE>RSS reader by Twardy</TITLE>
<STYLE type="text/css">
body {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 11px;
 COLOR: #333;
}
a { color:#006486; }
a:hover { color:#1d93b6; }
input,select {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 11px;
 border-style: solid; border-color: Gray; border-width: 1px;
 height: 17px;
}
</STYLE>
</HEAD>
<BODY>
<p style="margin-bottom:40px">copyright (c) <a href="mailto:[email protected]">Mariusz Twardowski</a></p>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method=POST id=form1 name=form1>
<select id=rss_canal name=rss_canal>
<?
 foreach ($linki as $klucz => $wart) {
 
  echo "<option";
  if ($strona == $klucz) echo ' selected="selected"';
  echo">$klucz</option>\r\n";
 
 }
?>
</select>&nbsp;<INPUT type="submit" value="pokaż" name=pokaz>
</form>
<?
 if (count($items_tab) > 0) {
  echo "<b>$chanel_title</b><br>kodowanie: $encoding<br><br><br>\n\n\n";

  foreach ($items_tab as $wart) {
   list($description,$link) = explode($separator,$wart);
    echo "$link<br><br>\n\n";
    if (!empty($description)) echo stripslashes(unhtmlspecialchars($description))."<br><br><br>\n\n\n";
  }
 }
?>
</BODY>
</HTML>

1 użytkowników online, w tym zalogowanych: 0, gości: 1