Pular para o conteúdo

RSS 1.0 no seu site

Código que gera o formato RSS para seu site, é compatível com vários programas leitores como : Evolution, Straw, Firefox e outros.

Instruções de uso no próprio código.
Mauricio mbmaciel
Hits: 6.684 Categoria: PHP Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Código que gera o formato RSS para seu site, é compatível com vários programas leitores como : Evolution, Straw, Firefox e outros.

Instruções de uso no próprio código.
Download rssficar.php Enviar nova versão

Esconder código-fonte

<?
// ***********************************************************
// RSSFICAR v 1.0
// gerador de páginas com o formato RSS 1.0
// Código criado por goran_johansson at yahoo dot com
// Modificado por Mauricio Maciel <mauricio@vendomicro.com.br>
// Fonte: http://www.php.net/manual/en/function.utf8-decode.php 
// ************************************************************
// Instruções de uso
// 
// A string "$url" é o endereço da página de onde vai ser a fonte dos dados e de onde será gerado o RSS, ela deve ser criada para este código funcionar. Ela pode ser uma página bem simples e não precisa ser mostrada aos visitantes do seu site.
// Esta página deve ter a tag <title> que vai ser o título do seu RSS, e cada notícia (ou post) deve ter o seguinte formato:
// <span class="rss:item"><a href="http://www.seusite.com.br/artigo.php?id=$id">$titulo</a>--$descricao</span> 
// Preste atenção ao "--" ou o script não vai funcionar direito!
// Veja este código funcionando em www.vendomicro.com.br/rssficar.php
// Qualquer dúvida ou sujestão para melhoria do código é bem vinda. Mande um email para mauricio@vendomicro.com.br
//
// Mude os dados abaixo para os seus. Não esqueça de criar a página para a string $url com o formato explicado acima!

$descsite="Boas novas - seu site de notícias";
$site="http://www.boasnovas.com.br";
$criador="Murilo Malandro";
$url="http://www.boasnovas.com.br/fonterss.php";
$copyright="Copyright © 2004 Good News";
  
// A partir daqui não é necessário mais modificações
  

function parse_html($descsite,$site,$criador,$url,$copyright){
  $itemregexp = "%rss:item *\" *>(.+?)</span>%is";
  $allowable_tags = "<A><B><BR><BLOCKQUOTE><CENTER><DD><DL><DT><HR><I><IMG><LI><OL><P><PRE><U><UL>";

  $urlparts = parse_url($url);
  if ($urlparts[path] == "") $url .= "/";

  if ($fp = @fopen($url, "r")) {
    while (!feof($fp)) {
      $data .= fgets($fp, 128);
    }
    fclose($fp);
  }
  
  $data =  smart_utf8_decode($data);

  eregi("<title>(.*)</title>", $data, $title);
  $channel_title = $title[1];

  $match_count = preg_match_all($itemregexp, $data, $items);
  $match_count = ($match_count > 25) ? 25 : $match_count;
  
  header("Content-Type: text/xml");

  $output .= "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n";
  $output .= "<rdf:RDF 
  xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" 
  xmlns:dc=\"http://purl.org/dc/elements/1.1/\" 
  xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\" 
  xmlns:admin=\"http://webns.net/mvcb/\" 
  xmlns:cc=\"http://web.resource.org/cc/\" 
  xmlns=\"http://purl.org/rss/1.0/\">\n\n";
  $output .= "  <channel rdf:about=\"".$site."\">\n";
  $output .= "  <title>". htmlentities(strip_tags($channel_title)) ."</title>\n";
  $output .= "  <link>".$site."</link>\n";
  $output .= "  <description>".$descsite."</description>\n";
  $output .= "  <dc:language>pt_BR</dc:language>\n";
  $output .= "  <dc:creator>".$criador."</dc:creator>\n";
  $output .= "  <dc:rights>".$copyright."</dc:rights>\n";
  $output .= "  <admin:generatorAgent rdf:resource=\"".$site."\" />\n\n ";
  $output .= "<items>\n";
  $output .= "<rdf:Seq>";


  for ($x=0; $x< $match_count; $x++) {

    $desc = $items[1][$x];
    $item_url = get_link($desc, $url);
    $link = htmlentities($item_url);
    $output .= "  <rdf:li rdf:resource=\"". $link ."\" />\n";
  }
  
   $output .= " </rdf:Seq>\n";
   $output .= "</items>\n\n";
   $output .= "</channel>\n\n";
  
  for ($i=0; $i< $match_count; $i++) {

    $desc = $items[1][$i];
    $title = explode ("--", (strip_tags($desc)));
    $item_url = get_link($desc, $url);
    $link = htmlentities($item_url);
    $desc = str_replace('&', '&', trim(htmlentities(strip_tags($desc))));
    $output .= "  <item rdf:about=\"". $link ."\">\n";
    $output .= "  <title>". $title[0] ."</title>\n";
    $output .= "  <link>".$link."</link>\n";
    $output .= "  <description>". $title[1] ."</description>\n";
//  $output .= "  <dc:subject>Assunto</dc:subject>\n"; // todo
    $output .= "  </item>\n\n";
  }
    $output .= "  </rdf:RDF>\n";

  print $output;
}

function get_link($desc, $url) {
  if (stristr($desc, "href")) {
    $linkurl = stristr($desc, "href");
    $linkurl = substr($linkurl, strpos($linkurl, "\"")+1);
    $linkurl = substr($linkurl, 0, strpos($linkurl, "\""));
    $linkurl = trim($linkurl);
    return $linkurl;
  } else {
    return $url;
  }
}

function smart_utf8_decode($in_str){
  // Replace ? with a unique string
  $new_str = str_replace("?", "q0u0e0s0t0i0o0n", $in_str);
  // Try the utf8_decode
  $new_str=utf8_decode($in_str);
  // if it contains ? marks
  if (strpos($new_str,"?")>0) {
    // Something went wrong, set new_str to the original string.
    $new_str=$in_str;
  }else{
    // If not then all is well, put the ?-marks back where is belongs
    $new_str = str_replace("q0u0e0s0t0i0o0n", "?", $new_str);
  }
  return $new_str;
}

parse_html($descsite,$site,$criador,$url,$copyright);

?>


Script que efetua cálculos estatísticos

WShell - Comandos do sistema via web

Calendário simples em PHP

Script para noticias no formato rss

Converter String para Minúsculo

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.