Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Newsletter à partir de flux RSS

Poster un nouveau sujet Imprimer cette discussion    Forum -> Administration d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
mego
WRInaute impliqué
WRInaute impliqué

Inscrit le: 07 Mar 2006
Messages: 326
Localisation: fr / es

URL permanente de ce messagePosté le : Jeu Sep 07, 2006 17:21    Sujet du message: Newsletter à partir de flux RSS

Hello,

Je suis à la rechercher d'un petit script (php) qui me permettrai de créer une newsletter automatiquement à partir d'un flux RSS. J'aimerai quelque chose que je puisse gérer moi même (pas de zookoda ou autre solution externe).

Quelqu'un pourrait il me renseigner la dessus ?

Merci
 
mego Visiter le site web du posteur
1000apps
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 18 Mai 2004
Messages: 121
Localisation: Larmor-Plage, France

URL permanente de ce messagePosté le : Jeu Sep 07, 2006 18:14    Sujet du message: Newsletter à partir de flux RSS

Voici un source que tu pourras modifier/adapter à ton besoin :

Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <?php

////////////////////////////////////////////

// PHPRSSReader.php - d'après HTML Reader par Jorge Solis // traduit et simplifié par Pierre Rouarch pour tenir en un fichier

//////////////////////////////////////

class xml {

var $parser; function parse($xmlstring){

$this->parser = xml_parser_create();
xml_set_object($this->parser, $this);
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($this->parser, "tag_open", "tag_close");
xml_set_character_data_handler($this->parser, "cdata");

// Initialisation
      $this->node_stack = array();
      $this->tag_open(null, "root", array());

      xml_parse($this->parser, $xmlstring);
      xml_parser_free($this->parser);

      $rnode = array_pop($this->node_stack);

      return($rnode);

}

function tag_open($parser, $tag, $attributes){

      // creation d'un nouveau node...
      $node = array();
      $node["_NAME"]      = $tag;
      foreach ($attributes as $key => $value) {
          $node$key = $value;
      }
      $node["_DATA"]      = "";
      $node["_ELEMENTS"]  = array();

      // ajouter le nouveau node à la fin de la pile de node
      array_push($this->node_stack, $node);

}

function cdata($parser, $cdata){

// ajouter les données au dernier node de la pile
      $lastnode = count($this->node_stack);
      $this->node_stack[$lastnode-1]["_DATA"] .= $cdata;

}

function tag_close($parser, $tag){

// suppression de la pile
      $node = array_pop($this->node_stack);
      $node["_DATA"] = trim($node["_DATA"]);

      // and ajout comme élément à la fin de la pile...
      $lastnode = count($this->node_stack);
      array_push($this->node_stack[$lastnode-1]["_ELEMENTS"], $node);

}

} // end of class xml

// recupération de l' adresse du RSS avec le paramètre rssurl $rssurl = $HTTP_GET_VARS["rssurl"];

//////////////////////////////////////////////////

//Modifiez ici pour mettre l'adresse URL de votre RSS au cas ou aucun argument n'est passé: // exemple : // http://www.votresite.com/PHPRSSReader.php?rssurl=http://www.votresite.com/votrefichierRSS

////////////////////////////////////////////////

if (!$rssurl ) $rssurl = "http://www.itcom3.com/fr/rss.php";

// récupération du fichier par paquets de 4096

$fp = fopen($rssurl, "r");
while (!feof ($fp)) $data .= fgets($fp, 4096);
fclose ($fp);
$initPos = strpos($data, "<channel>"); // Saut de l'entête

//parse les données

$xml_parser = new xml(); $data = substr($data, $initPos); $root_node = $xml_parser->parse($data); $channel = array_shift($root_node["_ELEMENTS"]);

//Récupération de certaines données du RSS (Voir les specifications rss 0.91, 0.92 et 2.0)

/// Récupération entête de channel  //////////////

foreach ($channel["_ELEMENTS"] as $item){

// suppression des antislashs

if($item[_NAME]=="title") $base_name=stripslashes($item[_DATA]); if($item[_NAME]=="link") $base_url=stripslashes($item[_DATA]); if($item[_NAME]=="description") $base_desc=stripslashes($item[_DATA]);

}

$base = "<b>Web: </b><a href=\"$base_url\" target=\"_new\">$base_name</a><br>$base_desc<br>";

////////////////////////////////////////////////

/////// Récupération de chaque Item  --> titre, adresse url, date de publication, description

/////////////////////////////////////////////

foreach ($channel["_ELEMENTS"] as $item){

if($item[_NAME]=="item") {

// suppression des antislashs 
foreach ($item["_ELEMENTS"] as $tag){
  if($tag["_NAME"]=="title") $news_title=stripslashes($tag[_DATA]);
  if($tag["_NAME"]=="link") $news_url=stripslashes($tag[_DATA]);
  if($tag["_NAME"]=="pubDate") $news_pubDate=stripslashes($tag[_DATA]);
   if($tag["_NAME"]=="description") $news_desc=stripslashes($tag[_DATA]);
}
$news .= "<p>$news_pubDate<br><b>$news_title</b><br>$news_desc<br><a href=\"$news_url\" target=\"_new\">$news_url</a><hr></p>";

} }

/////////////////////////////////////////////////

?> <html> <head> <title>Sample RSS Reader in PHP</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body>

<?php print($news) ?> <?php print($base) ?>

</body> </html>


A+

Pierre
 
1000apps Visiter le site web du posteur
mego
WRInaute impliqué
WRInaute impliqué

Inscrit le: 07 Mar 2006
Messages: 326
Localisation: fr / es

URL permanente de ce messagePosté le : Ven Sep 08, 2006 10:05    Sujet du message: Newsletter à partir de flux RSS

Merci je vais regarder ça Smile
 
mego Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Administration d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort